PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : parse error???


Vedek Bareil
2003-01-17, 00:42:02
ich hab ein Problem mit DevC++ 5 (beta 4.9.7.0):

nach dem was ich weiß, kann man unter C++ ja eigentlich einem Array folgendermaßen Werte zuweisen:

double* a = new double[5]; //a ist ein Array aus 5 double Zahlen
//...
a = {1.5, 2.3, 5.5, -0.1};

aber irgendwie meldet mir der Compiler dann immer "parse error before `{'".
Wobei anzumerken ist, daß die von mir verwendeten Arrays eigentlich immer Member einer struct sind:

struct Cb {double *a;} b;
//...
b.a = new double[5];
//...
b.a = {1.5, 2.3, 5.5, -0.1};

Klappt das vielleicht deswegen nicht? Gibt es da vielleicht irgendeine Einschränkung, daß Zuweisungen dieser Art nur bei Arrays erlaubt sind, die keine Member von irgendwem sind?
Oder hat DevC++ einen Knall? ???

Nagilum
2003-01-17, 02:16:27
Bei C++ ist die Initalisierung eines Arrays nur bei der Deklaration erlaubt.

Also sowas:

double a[] = {1.5, 2.3, 5.5, -0.1};

Wenn du später den Inhalt anpassen willst, dann könntest du z.B. über die einzelnen Elemente iterrieren, oder auch einfach memcpy() verwenden (wenn du nen Array kopieren willst).

Gnafoo
2003-01-23, 00:06:26
kann man nicht auch so schöne sachen machen: ?

struct Cb {double *a;} b;
b.a = (double[4]){1.5, 2.3, 5.5, -0.1};

für eventuelle speicherlecks übernehme ich keine garantie :)
(geht aber glaub ich sogar)

edit: sag mir mal plz jemand ob man sowas machen sollte ..
funktionieren tut es auf jeden fall .