Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 4) C4295

"array" : tablica jest za mała, aby zawierać znak null zakończenia

Tablica została zainicjowana, ale ostatni znak w tablicy nie ma wartości null; uzyskiwanie dostępu do tablicy jako ciągu może spowodować nieoczekiwane wyniki.

Przykład

Poniższy przykład generuje kod C4295. Aby rozwiązać ten problem, można zadeklarować większy rozmiar tablicy, przechowywać wartość null zakończenia z ciągu inicjatora lub użyć listy inicjatora tablicy, aby wyjaśnić intencję, że jest to tablica char, a nie ciąg zakończony wartością 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];
}