realloc

Pherseus

Erfahrenes Mitglied
Hi, ich hab ein Problem mit realloc. Und zwar möchte ich ein array wie folgt vergrößern:

Code:
 frArr = (Fraction *) realloc(frArr, (sizeof(frArr)/sizeof(frArr[0]))*sizeof(Fraction));

Fraction ist eine Klasse. Und frArr ist ein Array der Klasse. Also so hier:

Code:
 Fraction frArr[1];

Allersdings klappt das mit realloc nicht. Der Compiler gibt immer folgenden Fehler:

Auf der linken Seite einer Zuweisung muß ein L-Wert stehen, d.h. ein Ausdruck, dem etwas zugeordnet werden kann.

L-Werte können sein:
Numerische Variablen und Zeigervariablen.
Strukturkomponenten oder Indirektionen durch Zeiger.
Indizierte Array-Elemente.

Was mache ich falsch?
 
Ja es gibt dort eine kleinen unterschied zwischen a[x] und *a versuch mal das array dynamisch anzulegen also mit malloc dann sollte es klappen. Der unterschied besteht darin wo der Speicher angelegt wird bei a[x] wird er in den stack gepackt und bei malloc liegt er im heap.

Gruß Lemiras
 
Ja, Du kannst einem Array keine neue Adresse zuweisen. Du mußt frArr als Fraction* anlegen und den ersten Speicher mit malloc anlegen. Nur dann kannst Du ihn mit realloc reallokieren.
 
Zurück