• Hi,
    ich hab ein kleines Programm geschrieben welches sich einwandfrei kompilieren und ausführen lässt. Nun wollte ich eine Art Menü einbauen mit der switch Anweisung



    Dies lässt sich auch kompilieren. Wenn ich jedoch das Programm ausführe und dann z.b. die 1 drücke (und dann enter) kommt die Fehlermeldung
    "Datenzugriffspeicherfehler". Weiss jemand womit das zu tun hat und wie man das beheben kann? In C gibts ja malloc und so...

    Gruss

  • Bitte immer moeglichst kleine, aber vollstaendige Programme posten. Wie sollen wir dein Programm kompilieren und testen, wenn wir es nicht haben? Es ist gut, dass du dein Problem so weit isoliert hast, aber dann pack bitte auch eine main-Funktion drumherum. Das ist wichtig: Es mag sein, dass du glaubst, dass du nur unwichtige Einzelheiten weggelassen hast. Aber da kann man sich irren.

    Das hier kompiliert und laeuft so, wie es soll:

    Bei dir nicht? Welchen Compiler verwendest du?

    In C gibts ja malloc und so...


    Das ist C++, und da gibts new (und malloc). Ist hier aber nicht noetig.

    *plantsch*

  • ich verwende gcc version 4.2.1 (SUSE Linux). Meine main ist leider zu gross um hier zu posten.
    Wenn ich z.b. die 1 und enter drücke wird auch "Hallo2" ausgegeben jedoch folgt danach "Speicherzugriffsfehler" (nicht "Datenzugriffspeicherfehler" hab mich verguckt gehabt)
    Aber Speicher alloziieren und wieder frei geben dürfte hier eigentlich nicht (wie du schon sagtest) notwendig sein....
    Ansonsten müsste ich mal meine main verkleinern und doch posten...

  • hi, ich glaub ich hab das Problem gefunden. Ich hab die swich anweisung ja nur verkürzt angegeben, aber da lag grad der hacken: im case 1 fall erzeuge ein Objekt welches nach der switch anweisung benutzt wird. Das heisst wenn ich in alle andere Fälle reingehe kennt er das Objekt ja garnicht und versucht nach der Switch anweisung darauf zuzugreifen...
    Man das hätt ich auch eher sehen können...
    Trotzdem danke Plantschkuh
    Problem gelöst...

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!