Nun möchte ich mit malloc() mir während der Laufzeit
Speicherplatz reservieren und dem Zeiger *point zuordnen
(ich will vermeiden, ein statisch angelegtes Feld zu benutzen).
Leider funktioniert point = malloc(x * sizeof(POINT3D)) nicht,
weil malloc() einen Zeiger auf void zurückgibt und der Compiler
einfach nicht von *void nach *POINT3D konvertieren will.
Leider funktioniert point = malloc(x * sizeof(POINT3D)) nicht
Moeglicherweise ist der Fehler an einer anderen Stelle. Poste mal die relevanten Code-Zeilen direkt so, wie sie sind, bzw die Fehlermeldung.
In c++ gibt es ausserdem den new operator: POINT3d* point = new POINT3d; delete point; oder fuer Arrays POINT3d* pointarray= new POINT3d[x]; delete [] point;
point = (struct POINT3D*)malloc(x * sizeof(struct POINT3D));
^^^^^^ ^^^^^^
Der Compiler meldet Dir, daß er nicht konvertieren kann, weil
er POINT3D nicht kennt, sondern nur struct POINT3D. Vereinfachen kannst Du die Sache mit einem typedef.
typedef struct POINT3D_s
{
int x, y, z;
}
POINT3D;