Arraylaenge an Daten anpassen
-
Deine Datei könnte viel eher geschlossen werden:
fclose(fp);
könntest Du zwischen Zeile 18 und 19 packen.
-
IMHO solltest Du auch mal überlegen, was passiert, wenn
malloc()
oderrealloc()
fehlschlagen. Insbesondere letzteres zwingt Dich noch zu einer Erweiterung von Wutz' Minimalbeispiel ohne Fehlerbehandlung.
Wirst auch nochmal in die Dokumentation gucken müssen...Ausserdem ist das ja alles ganz nett, aber früher oder später willst Du Deine Daten an Funktionen übergeben oder noch Daten anhängen...
Zu diesem Zeitpunkt lohnte sich dann, dass ganze zu kapseln, das könnte z.B. so aussehen:typedef struct { int size; // aktuelle Anzahl Elemente int max_size; // maximale Elemente vor realloc double values[]; // Elemente (ein sogenanntes "Flexible Array Member") } vector; // Die drei sind zu implementieren: vector* vector_alloc(); void vector_free(vector* v); void vector_grow(vector** v); // Benutzung ist dann Pipifax: void vector_print(const vector* v) { for(int i=0; i<v->size; ++i) printf("%lf\n", v->values[i]); }