Problem bei Array of structs
-
Hallo,
ich hab ein kleines Problem beim Anlegen eines Array von structs.
struct produkt { int preis; int nummer; }; void init() { produkt abc[10]; for(int i=0; i++; 1<10) { abc[i]={10, i}; } } int main() { init(); }Und der Compiler (der aus Visual Studio 2010) sagt dann bei der for-Schleife "Error: Es wurde ein Ausdruck erwartet". Und da mir nciht bewusst ist, bzw auch durch Internetrechere nicht bewusst wird, warum er das nciht frisst, wäre es schön wenn mir jemand helfen kann!
Schönen Gruß
-
Eine for-schleife sieht so aus:
for(Initialisierung; Bedingung; Reinitialisierung)
Du hast bedingung und Reinitialisierung vertauscht.for(int i = 0; i<10; ++i)gruß
syntax
-
Syntax_error schrieb:
Eine for-schleife sieht so aus:
for(Initialisierung; Bedingung; Reinitialisierung)
Du hast bedingung und Reinitialisierung vertauscht.1. Reinitialisierung, sowas gibt es nicht. Was du meinst, ist eine Zuweisung.
2. Der dritte Ausdruck einer for-Schleife muss keine Zuweisung sein. Du kannst hier auch irgendeinen anderen Ausdruck nutzen, z.B. einpush_back.
-
for(int i=0; i++; 1<10)unabhängig von der Reihenfolge wird "1<10" zu anderen Problemen führen.
-
out schrieb:
Syntax_error schrieb:
Eine for-schleife sieht so aus:
for(Initialisierung; Bedingung; Reinitialisierung)
Du hast bedingung und Reinitialisierung vertauscht.1. Reinitialisierung, sowas gibt es nicht. Was du meinst, ist eine Zuweisung.
2. Der dritte Ausdruck einer for-Schleife muss keine Zuweisung sein. Du kannst hier auch irgendeinen anderen Ausdruck nutzen, z.B. einpush_back.Wenn man es genau nimmt, dann sagt der Standard
N3337 §6.5.3 / 1
for ( for-init-statement conditionopt; expressionopt)
Also:
for( Statement ; Bedingung ; Ausdruck )Wo das Statement im ersten Teil auch einfach eine leere Anweisung sein kann. Deswegen ist es nicht optional.
-
Ich Idiot^^
Wie kann sowas passieren oO
Danke und Gruß