strcpy(obj->Name,"Triangle CGF Version 0.0"); obj->nVrtx = 3;
/*Speicher fuer Eckpunkte reservieren und mit Werten belegen:*/ obj->Vrtx = (Point*) calloc (obj->nVrtx, sizeof(Point)); if (!obj->Vrtx) { printf (" setTriangleCGF: kein Speicher fuer Vrtx!"); return (-1); }
obj->Vrtx[0][X] = -1.;
Nun habe ich folgendes erweitert:
C++:
obj->Face[0].nPnt = 3;
/*Speicher fuer Flaechen-Ecken reservieren und mit Werten belegen:*/ #ifdef MORE_SET obj->Face[0].Pnt = (Point**) calloc (obj->Face[0].nPnt, sizeof(Point)); if (!obj->Face[0].Pnt) { printf (" setTriangleCGF: kein Speicher fuer Pnt!"); return (-1); }
obj->Face[0].Pnt[0][X] = -1.;
Bei mir wird aber eine Fehlermeldung geworfen: error C2440: '=': 'double' kann nicht in 'Point' konvertiert werden.
Jedoch ist doch bei dem gegebenen Code Vrtx auch vom Typ Point. Wieso wirft er aber bei mir diese Fehlermeldung? Zur besseren Verständnis noch die Struktur der Typen:
C++:
typedefstruct{ String Name; //Objekt-Name int nVrtx; //Anzahl Objektpkte int nFace; //Anzahl Flaechen Point *Vrtx; //Objektpunktkoord. Polygon *Face; //Flaechenliste float posMat[DIM*DIM]; // Positionsmatrix }CGFobject;
typedefstruct{ int nPnt; //Anzahl Eckpunkte Point **Pnt; //Punkt-Indizes char symbol;//Zeichen f.Konsoletypedef }Polygon;
Wäre um jede Hilfe dankbar.
LG Maddi1986Dieser Post wurde am 19.01.2008 um 23:01 Uhr von FloSoft editiert.