PDA

View Full Version : مشکل در کارکرد این کد (بازگردانی حافظه به سیستم)



hamedre81
دوشنبه 30 بهمن 1391, 10:11 صبح
سلام دوستان


مگه دستور زیر نباید حافظه اشغال شده توسط y رو به سیستم برگردونه و y رو پاک کنه یا مقدارش رو از بین ببره؟
ولی این دستور(delete) هیچ کاری روی y نمی کنه؟


int *x , *y,s;
x= new int;

if (!x)
{
ShowMessage("fillure x");
exit(1);
}

y = new int;
if (!y)
{
ShowMessage("fillure y");
exit(1);
}

*x =10;
*y=30 ;

s= *x * *x + *y * *y;

ShowMessage(s);


delete y;


ShowMessage(*y);

exit(1);

hamedre81
چهارشنبه 02 اسفند 1391, 09:24 صبح
دوستان کسی نبود جواب بده؟

من همین کد رو تو ویژوال استدیو 2012 اجرا کردم

int *x , *y,s;
x= new int;

*x =10;
*y=30 ;

s= *x * *x + *y * *y;

cout<<s<<endl;

delete y;
delete x;


s= *x * *x + *y * *y;

cout<<s<<endl;


بعد از پاک کردن y و x مقدارشون از بین رفت



http://s2.picofile.com/file/7663800749/Capture.jpg


اما چرا تو بورلند از بین نمی ره؟