本文整理自网络,侵删。
这个问题,应该是每个使用Delphi的朋友经常会遇到的疑问,针对如何将String变量赋值给PChar变量,网上有很多种说法,如PChar、StrPas。但经过我实际试用,发现以下问题。如果你感兴趣,可以在你delphi7编译下面二段代码,看其结果有何不同?
代码1
var p : pchar; s : string; i : integer;
begin
s := 'hello world';
i := length(s);
GetMem(p,i);
try
p := PChar(s);
finally
FreeMem(p); //此处会出错
end;
end;
代码2
var p : pchar; s : string; i : integer;
begin
s := 'hello world';
i := length(s);
GetMem(p,i);
try
StrPCopy(p,s);
finally
FreeMem(p); //可以正确释放
end;
end;
相关阅读 >>
Delphi 把修改好的cookies重新赋值给webbrowser1 doc
Delphi xe6 通过javascript api调用百度地图
更多相关阅读请进入《Delphi》频道 >>