wiedereinmal komischer Fehler? - Tausenderanzeige

  • Ich hab diesmal mal ein kleines Testproblem, ich hab mir gedacht, nachdem ich jemanden gesehen habe, der eine Zahlausgabe mit Tausenderzeichen nicht schafft, das mache ich doch schnell, das funktioniert auch ganz gut, jedoch wundere ich mich, dass das return den string löscht!?

    Ich frage mich, warum wird der String gelöscht, wenn ich es doch zurückgebe

  • Am Ende der Funktion wird die Variable str gelöscht. Der Destruktor gibt dabei den vorher aloziierten Arbeitsspeicher wieder frei. Das ist ganz praktisch, weil man den Speicher nicht mehr von Hand löschen muss, wie es sonst beim Heap der Fall ist.
    Bei deiner Funktion zeigt der Pointer auf den freigegebenen Arbeitsspeicher.

    Lösungsmöglichkeiten:
    1.

    Spoiler anzeigen

    2.

    Spoiler anzeigen
  • Thx, ausgehend von Methode 2 habe ich jetzt folgendes:

    EDIT: ging nicht, geändert, aber das try fängt den Stackerror nicht ab wenn das zB ein Array[2] ist... (dh. Zahl wird einfach irgendwo hingeschrieben...)

    2 Mal editiert, zuletzt von TheShadowAE (14. Oktober 2010 um 22:10)