Problem mit verkettete Liste



  • Probiere mal das und berichte uns wieder:

    Ersetze NULL durch 0x0
    und sag an, was NULL ist!

    Zeh Mau



  • Dein Code sieht ordentlich aus. Ich tippe auf einen Syntaxfehler vor struct list *baem = NULL;



  • Also wenn ich NULL durch 0x0 ersetze passiert nix, ich bekomme den selben Fehler.

    Wenn das halt so mache :

    struct list *baem = NULL;
    //baem = malloc (sizeof (struct list));
    

    Dann geht das ganze zwar, aber...

    int Neuertag()
    {
    int x=1;
    char i;
    system("cls");
    
    printf("Interpret : ");
    scanf("%s",baem->Interpret);
    ...
    }
    

    bekomme einen (Speicher)Fehler nach der Eingabe von "Interpret:"

    Ich hab vorher mal versucht "struct list *baem = NULL;"
    in die Funktion Neuertag() einzutragen, komischer gings dann, also ohne die Fehlermeldung oben und ohne Speicherfehler..

    Ist das normal ?



  • Kann es sein, dass du modulglobale Zuweisungen mit modullokalen Zuweisungen durcheinanderbringst. Mir scheint es, als benutzt du malloc() mit Zuweisung außerhalb von main(). Seltsam. Vielleicht gibt es einen kompletten Codeausschnitt.

    ?



  • ok, also wenn ich die Funktion so schreib gehts

    int Neuertag()
    {
    baem = (list *) malloc(sizeof (list));
    int x=1;
    char i;
    system("cls");
    
    printf("Interpret : ");
    scanf("%s",baem->Interpret);
    ...
    }
    

    Kein plan warum...



  • Ja kann sein das ich da was durcheinander bringe, bin noch nicht so geübt darin.
    Aber der ganze Code ist ziemlich lang und glaube nicht das du dir das antun willst ^^



  • Dein Problem:

    Du hast ganz normalen Code außerhalb von main() definiert und in keiner anderen Funktion. So funktionert C aber nicht. Keep it in functions, please.

    Ich jedenfalls rate heute nicht mehr weiter! :xmas2:



  • ich hab eigentlich nur die Variablen ausserhalb der Funktionen, ist das falsch ?
    Trotzdem danke für den Tip,werds mir merken.



  • naja, wenn du so was wie malloc() oder so außerhalb von Funktionen machst, gehts halt net... Siehste ja, du hast nen Compiler-Error. Des is eigentlich die Hauptsache daran, du kannst gerne (eigentlich nicht so gerne, aber du kannst) globale Variablen definieren, allerdings kann man außerhalb eines Anweisungsblockes, sei es nun eine Funktion oder so was, keine Funktionsaufrufe durchführen (so was geht zwar zum Beispiel in C# oder Java, aber nicht in C )



  • Thx für die Info. Aber wo ist den das Problem wenn ich meine Variablen Global deklarier ?



  • Das ist nicht das Problem,
    eher war es der Codeblock, der außerhalb von Funktionen stand,

    z.B.

    p = malloc(...);  :xmas2:
    

    Zeh Mau


Anmelden zum Antworten