delphi4arab منتديات دلفي للعرب
هل قواعد المتغيرات المحلية تنطبق على النوع Pointer ؟ - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : هل قواعد المتغيرات المحلية تنطبق على النوع Pointer ؟ (/showthread.php?tid=10963)



هل قواعد المتغيرات المحلية تنطبق على النوع Pointer ؟ - MasteranyOne - 17-07-2020

السلام عليكم ورحمة الله تعالى وبركاته

نص المسألة : هل المؤسرات المعرفة في الدالة أو الإجرائية (والتي يتم حجزها دخلها) تحرر المساحة المحجوزة من طرفها عند إنتهاء تنفيذ الدالة (حتى ولو لم يتم تحريرها من قبل المبرمج) ؟


RE: هل قواعد المتغيرات المحلية تنطبق على النوع Pointer ؟ - Delphi4Us - 17-07-2020

و عليكم السلام ورحمة الله تعالى وبركاته

يجب تحرير المؤشر من الذاكرة 

كود :
FreeMem (pText)؛



RE: هل قواعد المتغيرات المحلية تنطبق على النوع Pointer ؟ - MasteranyOne - 17-07-2020

بارك الله فيك على الرد

لكن وإن لم نحرره هل يتحرر أتوماتكيا عند إنتهاء تنفيذ الدالة ؟


RE: هل قواعد المتغيرات المحلية تنطبق على النوع Pointer ؟ - sofiane201 - 17-07-2020

لا يتحرر أوتوماتيكيا


RE: هل قواعد المتغيرات المحلية تنطبق على النوع Pointer ؟ - MasteranyOne - 17-07-2020

بارك الله فيك اخي الكريم 

لو ذققت في هذا الكود : نجد اننا يمكننا الوصول إلى البيانات مع اننا قمنا بتحريرها (أليس من المفروض اننا لا يمكننا الدخول إليها ؟)

كود :
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.