benno87 schrieb:
#include "buecher_func.h"
#include <stdio.h>
#include <string.h>
int main()
{
//Variablen dek
TBuch *buch[1000];
TVerlag *verlag[100];
TAutor *autor[300];
int lautor = 0;
int lverlag = 0;
// Bücher aus Datei lesen und in Struktur Buch speichern
file(&buch,&autor,&verlag, &lautor, &lverlag);
return 0;
}
Das Design sieht ja prinzipiell schon mal gut aus, wenn auch falsch.
Du hast deine Arrays schon definiert, d.h. die ändern sich selbst nicht mehr, nur noch der Inhalt. Einzig die Anzahl der (gültigen) Arrayeinträge wird sich ändern, deshalb musst du auch nur hierfür Zeiger übergeben, also in etwa:
int main()
{
/*Variablen Definition */
TBuch buch[1000];
TVerlag verlag[100];
TAutor autor[300];
int lbuch = 0;
int lautor = 0;
int lverlag = 0;
// Bücher aus Datei lesen und in Struktur Buch speichern
file(buch,autor,verlag,&lbuch,&lautor,&lverlag);
return 0;
}
Jetzt dürfte es für dich auch nicht mehr so schwierig werden, da eine Dimension wegfällt.
Trotzdem musst du aber noch statt wie bisher nur die Zeiger aus der Leseschleife abzuspeichern, neuen Speicher für die Strings belegen und dann die Zeiger darauf in deinen Arrays abspeichern, also jeweils noch malloc/strcpy.