PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Segfault in strtok



totycro
19-10-2008, 18:01
Hallo, aus irgendeinem Grund stürzt folgendes Programm bei mir immer mit einem Segmentation fault ab:


#include <string.h>

int main() {
char *a = "ab&cd";
strtok(a, "&");
return 0;
}

Ich hab die Manpage von strtok studiert, aber keinen Hinweis darauf gefunden, was da falsch läuft.
Der gcc gibt beim Kompilieren mit "-ansi -pedantic -Wall" keine Warnung aus.

Kann mir jemand sagen, was da falsch läuft?


Infos:

Backtrace von GDB:
#0 0xb7eb93a5 in strtok () from /lib/libc.so.6
#1 0x080483df in main () at strtoktest.c:5
Compiler: gcc (GCC) 4.2.4 (Gentoo 4.2.4 p1.0)
Betriebssystem: GNU/Linux, Gentoo

msi
19-10-2008, 18:54
strtok verändert im gezeigten string die stelle an der sich der delimiter befindet. deswegen musst du den string so definieren:



#include <string.h>

int main() {
char a[] = "ab&cd";
strtok(a, "&");
return 0;
}

totycro
19-10-2008, 19:08
strtok verändert im gezeigten string die stelle an der sich der delimiter befindet. deswegen musst du den string so definieren:



#include <string.h>

int main() {
char a[] = "ab&cd";
strtok(a, "&");
return 0;
}


Vielen Dank, ehrlich. Ich hab schon ne Weile gerätselt, aber der Fehler war mit wohl etwas zu subtil.

Regards,
totycro