003
12.01.2005, 12:05 Uhr
~Gast
Gast
|
Habe bisher folgenden Quelltext:
C++: |
/* Listenstruktur wird erstellt. Neuer Typ: typ_liste */ struct typ_liste { int wert; struct typ_liste *next; struct typ_liste *Ref1; struct typ_liste *Ref2; struct typ_liste *Ref3; };
/* Zeiger vom Typ typ_liste auf erstes Element */ struct typ_liste *Ref3Li; struct typ_liste *element; /* Zeiger element vom Typ typ_liste */
void DateiVerarb (void) { FILE *datei_ein_z; int elemente, wert, ref1, ref2, ref3, i; if ((datei_ein_z= fopen ("REF3LI.EIN", "rt")) == NULL) { printf("Datei kann nicht geoeffnet werden!\n"); } else { printf("Datei wurde geoeffnet!\n"); fscanf( datei_ein_z, "%d",&elemente); printf("\nAnzahl der Elemente: %d",elemente); printf("\nWerte: "); for(i = 1; i <= elemente; i++) { fscanf(datei_ein_z,"%d",&wert); element= (typ_liste*)malloc(sizeof(typ_liste)); element->wert= wert; element->next= NULL; struct typ_liste *tempZeiger= Ref3Li; while (tempZeiger->next != NULL) { tempZeiger= tempZeiger->next; } tempZeiger->next= element; printf("%d ",element->wert); } printf("\nRefers: "); element= Ref3Li; for(i = 1; i <= elemente; i++) { fscanf(datei_ein_z,"%d %d %d",&ref1, &ref2, &ref3); element->Ref1= ref1; element->Ref2= ref2; element->Ref3= ref3; printf("%d %d %d",element->Ref1, element->Ref2, element->Ref3); element= element->next; } } }
|
Es werden also Zahlen aus einer Datei gelesen. Die erste Zahl ist die Anzahl der Elemente. So oft wie Elemente vorhanden sind wird für diese Elemente mit malloc Speicher im heap freigemacht und wert wird in wert eingetragen. In der Datei hängt die Anzahl der Werte von der Anzahl der Elemente ab. Dann fehlen noch die Refers. Ich lese also aus der Datei z.B. die Zahl 2 aus. Dies soll dann bedeuten, dass auf das 2. Element verwiesen werden soll. Ich weiß das ich hier nur die Zahl einlese, diese müßte ich aber dann in die Adresse des Elements umwandeln richtig? Habe also in der unteren Schleife noch einen Fehler und blicke da auch noch nicht so ganz durch. |