C6386
更新:2007 年 11 月
警告 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';
}