C6385

更新:2007 年 11 月

警告 C6385:无效的数据: 访问 <buffer name> 时,<size1> 个字节可读,但可能读取了 <size2> 个字节: 行: x, y

此警告意味着指定缓冲区的可读范围可能小于用于从中读取数据的索引。尝试读取超出有效范围的数据会导致缓冲区溢出。

示例

下面的代码生成此警告:

void f(int i)
{
   char a[20];
   char j;
   if (i <= 20)
   {
      j = a[i];
   }
}

若要更正此警告,请使用下面的代码:

void f(int i)
{
   char a[20];
   char j;
   if (i < 20)
   {
      j = a[i];
   }
}