0
Mein Code liest Daten aus der Datei .txt
in eine doppelt verkettete Liste. Bitte schaut es euch an und sagt mir, was hier falsch gelaufen ist.Doppelt verknüpfte Liste kann nicht zurückgegeben werden
TelephoneBookList * commandLoad(char* fileName) {
TelephoneBookList *(*createList)(TelephoneBookNode*, char[]) = createTelephoneBookList;
char entry[100];
TelephoneBookList* aList = NULL;
TelephoneBookNode* aNode = NULL;
FILE* telephoneListFile = NULL;
telephoneListFile = fopen(fileName, "r");
if (!telephoneListFile)
return NULL;
else {
while (!feof(telephoneListFile)) {
fgets(entry, 100, telephoneListFile);
if (strstr(entry, "#")) //skip the first 2 lines in text file
continue;
aList = (*createList)(aNode, entry); //call the below function
countEntry++;
}
aList->size = countEntry;
fclose(telephoneListFile);
return aList;
}
}
Wo dos es zum Absturz? Haben Sie versucht, einen Debugger zu verwenden? –
Sie lesen die Datei nicht richtig, verwenden Sie stattdessen 'while (fgets (..)! = NULL) {...}'. Wie Sie es jetzt haben, wenn fgets das Ende der Datei trifft, erstellen Sie immer noch einen Knoten. –
'aList = malloc (sizeof aList);' -> 'aList = malloc (Größe von * aList);' und 'aList = (* createList) (aNode, Eintrag);' -> 'aList = createList()' gehe zur vorherigen Schleife. und 'addNodeToList (aList, entry);' anstelle von. – BLUEPIXY