编译器警告(等级 4)C4295
“array”:数组太小,无法包含终止空字符
数组已初始化,但数组中的最后一个字符不是 null;以字符串的形式访问数组可能会产生意外的结果。
示例
下面的示例生成 C4295。 要解决此问题,可以声明更大的数组大小,以保存初始化字符串中的终止 null,或者可以使用数组初始化列表来明确表明这是一个 char
数组,而不是以 null 终止的字符串。
// C4295.c
// compile with: /W4
int main() {
char a[3] = "abc"; // C4295
char b[3] = {'d', 'e', 'f'}; // No warning
a[0] = b[2];
}