Initialisierung
-
Aber warum geht es dann im 1.Beispiel ... da is die größe auch keine Konstante

-
char array[length]="test";Hat zwar nichts mit dem Thema zu tun, aber weisst du was hier passiert?
-
Mal zu nem ordentlichen Compiler wechseln... Ich empfehle die Visual Studio 2008 IDE.
-
Was passiert den da @knivil^^
-
Er kann sich length sparen und char* benutzen.
-
Kramuri schrieb:
Mal zu nem ordentlichen Compiler wechseln... Ich empfehle die Visual Studio 2008 IDE.
Würde ich auch sagen. Laut C++-Standard muss die Grösse eines Arrays ein konstanter Ausdruck sein, also zur Compilezeit feststehen.
knivil schrieb:
Er kann sich length sparen und char* benutzen.
Nur, wenn er nachher nicht mehr schreibend zugreifen will. Und wenn schon, sollte er
const char*benutzen.
-
Nexus schrieb:
Würde ich auch sagen. Laut C++-Standard muss die Grösse eines Arrays ein konstanter Ausdruck sein, also zur Compilezeit feststehen.
void f(int const size) { char arr[size]; }
-
Was willst du damit sagen? Dass es gewisse Compiler gibt, die deinen Code akzeptieren? Oder dass "zur Compilezeit feststehen" etwas Spielraum für Interpretationen lässt?
-
Shade Of Mine schrieb:
void f(int const size) { char arr[size]; }error C2057: expected constant expression
-
Hmm...
D.h. dann wohl dass es eine globale Konstante sein muss, oder man muss es dynamisch erzeugen oda?
-
Dweb schrieb:
D.h. dann wohl dass es eine globale Konstante sein muss
Keine globale Konstante, ein konstanter Ausdruck. Dazu gehören:
- Literale
- Variablen, die
const-spezifiziert sind und mit einem konstanten Ausdruck initialisiert werden - Enumeratoren
- Templateparameter
sizeof-Ausdrücke
-
ahh k
... dass war ne klare aussage @nexus