[API] Mein Programm stürtzt dauern ab

deluxe

Stammgast
Hallo Leute
Ich schreibe momentan ein Programm, in welchem der User eine Datei öffnen kann, welche nach dem Schema:

string1=string2\n
string3=string4\n
...

aufgebaut ist.

Es sollen Wörter abgefrat werden.(Sprachtraining)
Das Problem ist, das meine Programm je nach Datei-Ihnalt mit der Meldung "main.exe hat ein problem festgestellt und musste beendet werden..." abbricht. Ich habe aber null Ahnung an was es liegen könnte.

hier mal ein Ausschnitt, von wo das Problem wahrscheinlich kommt:

Code:
    for(i=1;i<=numlines;i++)
    {

        temp = strtok(NULL, "=");
        if(temp==NULL)break;
        wordlen = strlen(temp);
        *(*(wordlist+0)+i) = (char*)malloc(wordlen);
        strcpy(*(*(wordlist+0)+i), temp);

        
        temp = strtok(NULL, "\n");
        if(temp==NULL)break;
        wordlen = strlen(temp);
        *(*(wordlist+1)+i) = (char*)malloc(wordlen);
        strcpy(*(*(wordlist+1)+i), temp);
    }

numlines ist die Anzahl Zeilen, die das Programm hat.
strtok wurde schon aufgerufen mit einem Zeiger der auf den String zeigt, in dem der Inhalt der Datei gespeichert ist.
wordlist ist folgendermassen deklariert:
Code:
extern char*** wordlist;//ist extern
...
wordlist            =    (char***)malloc(2);//(Für die 2 Sprachen
*(wordlist+0)    =    (char**)malloc(numlines+1);//Für alle
*(wordlist+1)    =    (char**)malloc(numlines+1);//Zeilen

Ich glaube ich habe irgend einen Logikfehler gemacht, komme jedoch nicht drauf. Habs auch schon mit strchr probiert habs dann aber gelasse, da strtok einfacher zu verwenden ist.
Kompiler und Linker ist TCC(Tiny C Compiler)

Hoffe jemand weiss rat ;)
 

M.Ä.N.E

Stammgast
Weiss jetzt nicht was der Fehler ist aber ich würde so was anders Lösen nämlich mit:
fscanf();

Code:
...
while(fscanf(DATEI,"%s=%s\n",string1,string2)!=EOF) //DATEI ist Der File-Zeiger
...
Nun kannst du sie in deine Liste eintragen vielleicht hilft dir das.
Ach ja falls du andere Wörter speicher willst in jene Datei emphel ich dir fprintf();

Syntax:
Code:
int fprintf(FILE *f, const char *format, ...);
 

deluxe

Stammgast
Dank dir für die Antwort.

Aber ich will eben auch Phrasen einlesen können, z. B. "Ich bin=I am", da liest mir fscanf() ja nur bis zum Leerzeichen ein.

PS
Die Datei lese ich mit fread() in einen String ein.
 
Oben