Pointer in Struct der auf ein Struct Array zeigt?
-
Hallo @ all!!
Ich brauche zwei struct und zwar:
typedef struct Pol { char *id; char *fill; } PolTyp; typedef struct Punkt { int x; int y; }*Point;
Jetzt zu meiner Frage wie mache ich ein Pointer auf Struct Point der in Struct Pol steht!
Und wie kann ich *Point zu einen Dynamischen Array machen?
Also ich möchte das der Zeiger der in Pol steht auf das Struct Array point zeigt! Weil ich mehrere Punkte einlesen muss!Wäre Super wenn mir jemand dabei weiterhelfen könnte!!
-
Hallo.
typedef struct Pol { char *id; char *fill; } PolTyp; typedef struct Punkt { int x; int y; } PunktTyp;
Jetzt zu meiner Frage wie mache ich ein Pointer auf Struct Point
**
struct Punkt *pPunkt;
**der in Struct Pol steht!
typedef struct Punkt { int x; int y; } PunktTyp; typedef struct Pol { char *id; char *fill; struct Punkt *point; } PolTyp;
Und wie kann ich *Point zu einen Dynamischen Array machen?
Mach es als Liste und schau dir malloc mal an. Du könntest also in Pol auf den ersten Punkt zeigen. Dieser wiederum zeigt auf den nächsten, der wieder auf den nächsten usw. Der letzte Punkt ist dann der, der auf NULL zeigt.
mfg
-
das mit dem struct array geht so wie mit einem normalen dynamischen array einfach mit malloc.
typedef struct Pol { char *id; char *fill; struct Punkt *punkte; } PolTyp; typedef struct Punkt { int x; int y; } PunktTyp; int main() { struct Pol x; ... // Mit diesem aufruf reservierst du speicher für 3 Punkte x.punkte = malloc(3*sizeof(struct Punkt)); // auf die einzelnen Punkte greifst du dann so drauf zu // zugriff auf das x des ersten Punktes x.(data+0)->x = 10; ... return 0; }