Probleme beim allokieren von typedef struct
-
Guten Morgen,
ich moechte innerhalb eines typedef structs ein anderes typedef struct
(re)allokieren. Ich habe es nicht zum funktionieren gebracht:Hier ist ein kleiner Code-Ausschnitt:
typedef struct { double x; double y; double z; } double3; typedef struct { double3 *A; int L; } DATA3D; void construct (DATA3D *c, int S) { c->A = (double3 *) malloc(S * sizeof(double3)); if (c->A == NULL) { printf("malloc failure. program terminated.\n"); exit(EXIT_FAILURE); } } void reconstruct (DATA3D *c, int S) { c->A = (double3 *) realloc(A->c, S * sizeof(double)); if (c->A == NULL) { printf("realloc failure. program terminated.\n"); exit(EXIT_FAILURE); } } DATA3D * coordinates (FILE *file) { int i = 0, l = 100; double x, y, z; DATA3D *c = NULL; construct(&c, l); while(fscanf(file, "%lf %lf %lf", &x, &y, &z) == 3) { if (l < (i+30)) { l *= 10; reconstruct(&c, l); } c->A[i]->x = x; c->A[i]->y = y; c->A[i]->z = z; i += 1; } c.L = l; return c; } int main (void) { int i = 0; DATA3D *a = NULL; FILE *in = fopen("haha.in", "r"); *a = coordinates(in); for (i=0; i<a.L; i++) a->A[i]->x = sqrt(a->A[i]->x)) + 0.5; return EXIT_SUCCESS; }
Ich waere euch sehr dankbar, wenn Ihr drauf gucken und mir weiter helfen
koenntet.Viele Gruesse,
simsa
-
in zeile 44 data3d *c=null ist mist.
so gehts ...
data3d c;
construct (&c, .....
-
danke schoen.
Gibt es eigentlich ein gutes Tutorial, wo man das mit den Zeigern einfach
versteht?Gruesse,
simsa
-
simsa schrieb:
danke schoen.
Gibt es eigentlich ein gutes Tutorial, wo man das mit den Zeigern einfach
versteht?Gruesse,
simsadu musst dir einfach im kopf darüber klar werden was zeiger und adressen sind. dann verstehst du das.
-
pittbull schrieb:
du musst dir einfach im kopf darüber klar werden was zeiger und adressen sind. dann verstehst du das.
das denke ich mir auch immer
einen schoenen sonntag noch, simsa