Anzeige:
Ergebnis 1 bis 3 von 3

Thema: Segfault in strtok

  1. #1
    Registrierter Benutzer
    Registriert seit
    21.07.2006
    Beiträge
    46

    Segfault in strtok

    Hallo, aus irgendeinem Grund stürzt folgendes Programm bei mir immer mit einem Segmentation fault ab:

    Code:
    #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:
    Code:
    #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

  2. #2
    Registrierter Benutzer
    Registriert seit
    14.01.2002
    Beiträge
    657
    strtok verändert im gezeigten string die stelle an der sich der delimiter befindet. deswegen musst du den string so definieren:

    Code:
    #include <string.h>
    
    int main() {
    	char a[] = "ab&cd";
    	strtok(a, "&");
    	return 0;
    }

  3. #3
    Registrierter Benutzer
    Registriert seit
    21.07.2006
    Beiträge
    46
    Zitat Zitat von msi Beitrag anzeigen
    strtok verändert im gezeigten string die stelle an der sich der delimiter befindet. deswegen musst du den string so definieren:

    Code:
    #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

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •