Witam
Mam takie pytanie, mianowicie:
1Tworze sobie jakis record w delphi
2W jakiejs funkcji/procedurze deklaruje dynamicznie sobie egzemplarz rekordu np:
var a:Trecord;
teraz jego definicja:
begin
new(a);
a^.p := 3; {...}
Powyzsza funcja wykona sie zalozmy 5 razy, po wyjsciu z takiej funkcji moge sie odwolywac do utworzonych egzemplarzy rekordu Trec poprzez np wzkazniki.
A teraz mam klase, tworze dynamicznie jej egzemplarze znowu w jakiejs funkcji
np:
function x....
var a:Tklasa;
begin
a:=Tklasa.create; {...}
Po wykonaniu owej funkcji roznica jest taka ze wszystkie wzkazniki do egzemplarzy klasy Tklasa wzkazuja jedna pamiec - ostatnio utworzonego egzemplarza. Oznacza to że egzemplarze sie nadpisuja czyli po zakonczeniu funkci pamiec dla zmiennej lokalnej 'a' zostaje zwolniona, i tu moje pytanie dlaczego ? I jak temu mozna zapobiec ?
Dlaczego egzemplarz rekordu zachowuje sie inaczej niz egz. klasy?
Będe bardzo wdzięczny za odpowiedz. Pozdrawiam