Zitat von
Muetze1:
Man sollte vllt. in dem Sinne noch darauf hinweisen, wenn ein lokaler AnsiString mit einem Typecast zu einem PChar gewandelt wird, weil dann wird der PChar mit verlassen der Procedure ungültig
Jupp, darauf wurde ja hingewiesen.
Zitat von
Muetze1:
(PChar als Funktionsergebnis, etc)
Pointer auf lokale Variablen zurückgeben ist aus diesem Grund im Allgemeinen böhse[tm]. Das wird bei C++ dann lustig, wenn man sich auf dem Stack Objekte erzeugt und anschließend meint, mit Pointern darauf zu schießen
Zitat von
Muetze1:
Da es aber viele Möglichkeiten gibt und es auch andere Speicherreservierungen als GetMem() gibt
In diesem Sinne noch ein Hinweis zu
diesem Beitrag: Es finden sich Klammern im Text, in denen einige (nicht alle) Möglichkeiten aufgezählt werden, wie man Speicher reservieren und wieder freigeben kann. Die Listen in diesen Klammern entsprechen sich. Die richtige Methode zum Freigeben eines mit GetMem() allokierten Blocks ist also FreeMem(), zu New() gehört Dispose() und so weiter.