Anzeige:
Ergebnis 1 bis 3 von 3

Thema: nicht lokalisierbarer Fehler im C-Programm

  1. #1
    Registrierter Benutzer
    Registriert seit
    22.03.2001
    Beiträge
    650

    nicht lokalisierbarer Fehler im C-Programm

    In einem C-Programm habe ich einen merkwürdigen Fehler: vor der letzten Anweisung (return) der ersten von main aufgerufenen Funktion wird noch die Zeilennummer mittels

    printf ("l %d\n", __LINE__);

    ausgegeben, aber unmittelbar danach wird dieselbe Anweisung in main (hinter dem Aufruf der betreffenden Funktion) nicht erreicht sondern das Programm terminiert mit Signal 11.
    Wie kann es denn sein, dass ein return von einem Int-Wert (in dem Fall 208) und Beenden einer Funktion ein Signal 11 erzeugt?

    Compiliert habe ich mittels
    gcc -O2 -lm -Wall -pedantic -o kurs3 kurs3.c

  2. #2
    Registrierter Benutzer
    Registriert seit
    10.04.2001
    Ort
    Bremen
    Beiträge
    339
    Signal 11 = Segmentation Fault

    http://www.tuxedo.org/~esr/jargon/ht...ion-fault.html

    Darf man kurs3.c mal sehen?

  3. #3
    Registrierter Benutzer
    Registriert seit
    22.03.2001
    Beiträge
    650
    Ich habe die Lösung: Zwei Strings, die ich als Felder definiert habe um die maximale Größe vorzugeben habe ich in einer Schleife falsch initialisiert:

    for (j = 0; j < 128; i++)
    {
    line[i] = '\0'; // line
    cline[i] = '\0'; // command line
    }

    Da musste der Index i nur durch j ersetzt werden (an den 3 Stellen)

    Warum das erst beim Verlassen der Funktion ein Signal 11 erzeugt, selbst wenn ich efence benutze, ist mir nicht klar

Lesezeichen

Berechtigungen

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