Fehlermeldung nach korrektem Ablauf des Programms!



  • Hi Leute!

    Ich hab ein Problem mit einem Programm von mir. Ich bekomme diese Fehlermeldung: http://img3.fotos-hochladen.net/uploads/unbenanntghjaqircx5.jpg

    Ich weiß leider nicht was diese Fehlermeldung der Konsole bedeuten soll. Habt ihr da mehr Erfahrung als ich?


  • Mod

    Da steht doch unten sogar drunter, wo man erfährt, was das bedeutet. Und wenn das nicht reicht, dann tipp es doch mal bei Google ein! Da siehst du, dass das ein typisches Problem ist, wenn man ohne Erfahrung (und wie immer ohne Not) mit manueller Speicherverwaltung hantiert. Darauf wurdest du schon vor langer Zeit mehrmals hingewiesen, das letzte Mal hier:
    http://www.c-plusplus.net/forum/p2309021
    Aber du hast anscheinend diese Hinweise ignoriert. Das rächt sich jetzt. Und mittlerweile ist es viel schwieriger, dein Programm zu korrigieren, weil es viel größer geworden ist, als wenn du sofort auf uns gehört hättest.



  • Ich bin ein Prophet!

    faulerapfel schrieb:

    du [wirst] Probleme bekommen sobald du den anderen Bug gefixt hast, weil du die Fünferregel verletzt hast.



  • vip@r schrieb:

    Ich weiß leider nicht was diese Fehlermeldung der Konsole bedeuten soll. Habt ihr da mehr Erfahrung als ich?

    Im Prinzip bedeuted diese Fehlermeldung dass du schlecht bist (bzw. wer auch immer das Programm geschrieben hat das diese Meldung bringt).



  • Ich hatte die am Anfang meiner Karriere auch.
    Dann kam RAII.



  • Nathan schrieb:

    Ich hatte die am Anfang meiner Karriere auch.
    Dann kam RAII.

    Bei mir war noch eine "Aufpassen was man tut" Phase dazwischen 🙂



  • Ja ok, wenn ich ehrlich bin kam bei mir auch noch eine "Was soll das? Ich habe doch nichts falsch gemacht?"-Phase dazwischen mit Frustation und einem kompletten in die Tonne treten meines Sourcecodes. Und dann habe ich mich gefragt warum so was passiert, aufgehört Youtube-Programmiervideos zu gucken und mir Bücher von Scott Meyer und Andrei Alexandrescu gekauft. Erst dann kam RAII.



  • Der reinste Moralapostel-Thread 😃



  • Scheint so als wenn C++ Programmierer ganz schön aggressive Meinungen haben



  • Aber nur, wenn der Threadersteller aus seinem letzten Thread nichts behalten hat.



  • iiar schrieb:

    Scheint so als wenn C++ Programmierer ganz schön aggressive Meinungen haben

    Und das auch nur, weil sie Recht und Ahnung haben 😉



  • Danke, Leute. Aber nun: Schluss mit'm Bitch-Fight.

    Ich hab versucht die letzten zwei Tagen mich über die Fünfer-Regel zu informieren. Aber weder im Internet noch in meinem Buch finde ich was die Fünferregel ist.

    Da ja (anscheinend) dieser Fehler durch die verletzte Fünferregel kommt, muss ich wohl wissen was die Fünferregel ist. Deswegen würde ich mich freun, wenn man mir etwas weiterhelfen könnte.

    Woran liegt das also nun an meinem Code?



  • Offiziell heißt es noch immer Dreierregel. http://de.wikipedia.org/wiki/Dreierregel_(C%2B%2B)


  • Mod

    Such mal nach Dreierregel. Regel der großen Drei.

    Das ist aber höchstwahrscheinlich nur Makulatur. Das tiefere Problem ist, dass du überhaupt versuchst, manuell Speicher zu verwalten, obwohl:
    a) Dir C++ das schon abnehmen würde
    b) Es sehr schwierig ist
    c) Du aber nicht weißt, wie es richtig ist
    d) Fehler dabei ziemlich üble Folgen haben

    Wer weiß also, wie viel du neben der Dreierregel noch falsch gemacht hast? Der richtige Weg den Fehler zu beheben wäre daher, einen Schnitt zu wagen: Gute, moderne Lehrbücher lesen. Insbesondere über die Standardbibliothek und objektorientiertes Programmieren. Üben an kleinen Beispielen. Verstehen was und warum du das so machst. Den Code, an dem du jetzt schon wochenlang schreibst wegschmeißen. An einem Tag alles von Grund auf neu schreiben und dieses Mal funktioniert es auf Anhieb und du lachst, wie leicht es war.



  • iiar schrieb:

    Scheint so als wenn C++ Programmierer ganz schön aggressive Meinungen haben

    Nicht aggressiv. C++ erfordert nun mal ein gewisses Maß an Disziplin. Das ist sicher ein Problem bei C++. Aber wenn man diese Disziplin nutzt, dann ist C++ ein echt guter Kumpel. Wenn dann jemand kommt, der die Disziplin nicht hat sondern mit new und delete rum hantiert, wo es nicht notwendig ist, dann sollte man ihn darauf hinweisen, dass er doch bitte genau das tun soll.



  • Der reinste Moralapostel-Thread 😃

    Lieber Gott im Himmel,
    schenk mir einen neuen Pi...
    meiner ist geknickt,
    denn ich hab zuviel gefi...

    ------

    @vip@r:
    So aus dem Bauch heraus würde ich mal vermuten dass du versucht eine Speicher freizugeben welcher bereits frei ist.

    class A
    {
    public:
      int* D;
    
      A()
      {
        this->D = new int;
      }
    
      ~A()
      {
        delete this->D;
      }
    };
    
    // ...
    
    int main(int argc, char** argv)
    {
      A* a = new A;
      A b = *a;
    
      // Fehler: a->D und b->D zeigen beide auf den gleichen Speicherbereich!
      delete a;
      // Und hier dürfte es krachen da der Konstruktor von b versucht den Speicherbereich von a->D zu löschen!
    }
    

    Also was sagt der Debugger?


Log in to reply