tommie-lie |
16. Feb 2006 16:48 |
Re: pchar freigeben?
Zitat:
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:
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:
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.
|