编译器警告(等级 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];
}