Es gibt noch ne andere Variante, die ich z.B. beim CQParser verwende:
Delphi-Quellcode:
function foo: PInteger;
var
i: PInteger;
begin
GetMem(i, SizeOf(Integer));
i^ := 12345;
result := i;
end;
So in etwa. Klassen die man lokal erzeugt, aber nicht mehr frei gibt sind sozusagen dann auch weiter da, nur wird der Pointer darauf beim Verlassen des Blocks zerstört. Übergibt man den Pointer hingegen vorher an eine Variable die über den Block hinaus besteht, so ist darüber ganz normaler Zugriff möglich, und auch eine ordentliche Freigabe. Das wäre meiner Meinung nach noch die sauberste Variante dieser kleinen Schweinerei
.
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel