strtok Fehler
-
Hallo,
hab hier ein strtok wo ich zwei tokens jeweils bei jedem durchlauf habe, die in zwei verschieden char* geschrieben werden sollen, allerdings bekomme ich beim debuggen beim 3ten durchlauf einen Fehler.
for(cnt_wp=0;cnt_wp<t;cnt_wp++) { wp=strtok (weather[cnt_wp],trennzeichen); while (wp!=NULL) { tokenTag[cnt_wp] = (char*)malloc(sizeof(char) * (strlen(line)+1)); tokenExp[cnt_wp] = (char*)malloc(sizeof(char) * (strlen(line)+1)); strcpy(tokenTag[cnt_wp],wp); wp=strtok(NULL,trennzeichen); strcpy(tokenExp[cnt_wp],wp); wp=strtok(NULL,trennzeichen); } }
Dies kann auf eine Beschädigung des Heaps zurückzuführen sein und weist auf ein Problem in tst.exe oder in einer der geladenen DLLs hin.
-
was mir auf den ersten blick auffällt:
1. du testest in der schleife nicht, ob strtok 0 zurückgibt.
2. die rückgabewerte von malloc werden auch nicht auf 0 geprüft
3. cnt_wp wird nicht hochgezählt
4. der rückgabewert von malloc wird zu einem anderen pointer gecastet: unnötig und potentiell gefährlich
-
Hallo,
danke für deine Antwort. Ist mir schon klar, dass der code nicht wirklich 100% richtig ist, hab aber den Fehler jetzt gefunden. By strlen(line) steht was falsches drin, naja eine Nacht mal darüber schlafen und beim nächste mal schauen findet man den Fehler.
danke