有没有办法检查指针是否已被处理?
TRecTest = record
Test : string;
end;
PRecTest = ^TRecTest;
...
var
P : PRecTest;
begin
New(P);
//...
Dispose(P);
//here I want to check that P has been already disposed
end;
如果我再次致电Dipose(P)
,则会引发EInvalidPointer
例外消息'无效指针操作' 。
我知道我可以将其设置为nil
,然后使用Assigned
...
var
P : PRecTest;
begin
New(P);
//...
Dispose(P);
P := nil;
if(not Assigned(P))
then ShowMessage('Disposed');
end;
...但我想知道是否可以检查P
是否仍然是有效指针而不将其值设置为nil。