如何将String变量赋值给PChar变量
这个问题,应该是每个使用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;
Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号
执行时间: 0.041370868682861 seconds