E2021 Array muss mindestens ein Element enthalten (C++)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Compiler-Fehler und -Warnungen (C++) - Index

ANSI C und C++ schreiben vor, dass ein Array mindestens ein Element enthalten muss, da Objekte der Größe Null nicht erlaubt sind.

Ein alter Programmiertrick sieht als Element einer Struktur ein Array der Größe Null vor und liefert später den nötigen Speicherplatz mit malloc.

Um diesen Trick nach wie vor anzuwenden, müssen Sie mindestens ein Element für das Array vorsehen, wenn Sie im ANSI-Standard compilieren.

Im Gegensatz zu Definitionen sind nach wie vor Deklarationen von Arrays unbekannter Größe möglich.

Beispiel:



 char ray[];         /* Definition unbekannter Größe - NICHT ERLAUBT */
 char ray[0];        /* Definition der Größe Null - NICHT ERLAUBT */
 extern char ray[];  /* Deklaration unbekannter Größe - ERLAUBT */