运行时 报错a invalide pointer operation(0分)

  • 主题发起人 主题发起人 caroline
  • 开始时间 开始时间
C

caroline

Unregistered / Unconfirmed
GUEST, unregistred user!
运行时 报错a invalide pointer operation

var
dataptr0:pchar;
sign:string;
begin
sign:='sdf';
dataptr0:=StrAlloc (40);
dataptr0:=Pchar(sign);
strdispose(dataptr0); ???报错:a invalide pointer operation
end;
 
你可以在strdispose(dataptr0);前加一句dataptr0:= nil;
因为变量dataptr0与sign所处的内存空间不一样,
变量sign在函数退出时才释放,是由操作系统管理,在程序中不能对它的空间进行释放
在你原来的程序中,释放dataptr0时等于释放sign,所以会出错。
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
544
import
I
后退
顶部