如何检查指针是否已被处理?

时间:2018-04-11 15:56:02

标签: delphi pointers

有没有办法检查指针是否已被处理?

  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。

0 个答案:

没有答案