statische arrays definiert und mit unbekannter Größe, leere Klammern?

Für den C++ - code-fragment:

class Foo {
    int a[]; //no error
};

int a[];     //error: storage size of 'a' isn't known

void bar() {
    int a[]; //error: storage size of 'a' isn't known
}

warum nicht auch die member-Variablen verursachen einen Fehler zu? und was ist der Sinn dieser member-variable ist?

Ich bin mit gcc version 3.4.5 (mingw-vista special) durch CodeBlocks 8.02.

Auf Visual Studio Express 2008 - Microsoft(R) C/C++ Optimizing Compiler 15.00.30729.01 für 80x86, bekam ich folgende Meldungen:

class Foo {
    int a[]; //warning C4200: nonstandard extension used : zero-sized array in struct/union - Cannot generate copy-ctor or copy-assignment operator when UDT contains a zero-sized array
};

int a[];

void bar() {
    int a[]; //error C2133: 'a' : unknown size
}

Nun, das benötigt einige Erläuterungen zu.

  • Die Beschriftung erwähnt "statische arrays". Wo sind diese "statische arrays" in deiner Frage? Ich sehe nicht einen einzigen Verweis auf eine "statische arrays".
  • Ich meine, statisch zugewiesenen arrays. Bitte fühlen Sie sich frei zu Bearbeiten-die Frage, ob Sie als notwendig ansehen. Danke.
Schreibe einen Kommentar