Поделиться через


Предупреждение компилятора (уровень 4) C4295

"array" : массив слишком мал, чтобы включить завершающий символ NULL

Массив инициализирован, но последний символ в массиве не имеет значения 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];
}