حمیدرضاصادقیان
جمعه 19 بهمن 1386, 17:47 عصر
سلام دوستان .من یک لینک لیست ایجاد کردم و وقتی که میخوام یک نود رو حذف کنم از کد زیر استفاده میکنم.
If Temp=Head Then
Begin
Head:=Temp.Next;
// head^.Previous:=Nil;
dispose(temp);
// temp:=nil;
If head=nil then
Begin
head:=nil;
NewNode:=nil;
Tail:=nil;
Temp:=Nil;
End Else
Begin
Temp:=Head;
Checksum;
End;
End Else
البته قسمتهایی که کامنت شده رو جدیدا اضافه کردم و مشکل حل شد. ولی میخوام بدونم بعد از اینکه متغیر temp رو ازاد میکنم با دستور dispose . و وقتی یک متغیر دیگر رو به آدرس اون ارجاع میدم قائدتا باید به من پیغام access violation بده زیرا دیگه اون آدرس نباید وجود داشته باشه.
در صورتی که اون آدرس وجود داره .مقادیر عددی که داخلش هست درسته ولی مقادیر متنی اون چرت و پرت شده.من مجبور شدم بعد از dispoSe به اون مقدار nil بدم تا مطمئن بشم دیگه وجود نداره.
If Temp=Head Then
Begin
Head:=Temp.Next;
// head^.Previous:=Nil;
dispose(temp);
// temp:=nil;
If head=nil then
Begin
head:=nil;
NewNode:=nil;
Tail:=nil;
Temp:=Nil;
End Else
Begin
Temp:=Head;
Checksum;
End;
End Else
البته قسمتهایی که کامنت شده رو جدیدا اضافه کردم و مشکل حل شد. ولی میخوام بدونم بعد از اینکه متغیر temp رو ازاد میکنم با دستور dispose . و وقتی یک متغیر دیگر رو به آدرس اون ارجاع میدم قائدتا باید به من پیغام access violation بده زیرا دیگه اون آدرس نباید وجود داشته باشه.
در صورتی که اون آدرس وجود داره .مقادیر عددی که داخلش هست درسته ولی مقادیر متنی اون چرت و پرت شده.من مجبور شدم بعد از dispoSe به اون مقدار nil بدم تا مطمئن بشم دیگه وجود نداره.