C6386

警告 C6386:缓冲区溢出: 访问 <buffer name> 时,<size1> 个字节可写,但可能写入了 <size2> 个字节: 行: x, y

此警告意味着指定缓冲区的可写范围可能小于用于写入它的索引。这可能会导致缓冲区溢出。

示例

下面的代码同时生成此警告和 C6201

#define MAX 25

void f ( )
{
  char ar[MAX];
  //Code ...
  ar[MAX] = '\0';
}

若要同时更正这两个警告,请使用下面的代码:

#define MAX 25

void f ( )
{
   char a[MAX];
   // code...
   a[MAX - 1] = '\0';
} 

请参见

参考

C6201