السلام عليكم ورحمة الله تعالى وبركاته
نص المسألة : هل المؤسرات المعرفة في الدالة أو الإجرائية (والتي يتم حجزها دخلها) تحرر المساحة المحجوزة من طرفها عند إنتهاء تنفيذ الدالة (حتى ولو لم يتم تحريرها من قبل المبرمج) ؟
و عليكم السلام ورحمة الله تعالى وبركاته
يجب تحرير المؤشر من الذاكرة
بارك الله فيك على الرد
لكن وإن لم نحرره هل يتحرر أتوماتكيا عند إنتهاء تنفيذ الدالة ؟
بارك الله فيك اخي الكريم
لو ذققت في هذا الكود : نجد اننا يمكننا الوصول إلى البيانات مع اننا قمنا بتحريرها (أليس من المفروض اننا لا يمكننا الدخول إليها ؟)
كود :
TPtr = ^integer; //-------
var
Form1: TForm1;
iPtrGlob : TPtr; //---------
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
memo1.Lines.Add(iPtrGlob^.ToString);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
iPtrlocal : TPtr;
begin
new(iPtrlocal);
iPtrlocal^ := 2020;
memo1.Lines.Add(iPtrlocal^.ToString);
iPtrGlob:= iPtrlocal; //------
Dispose(iPtrlocal); //-------
end;
end.