如何将String变量赋值给PChar变量


本文整理自网络,侵删。

 

如何将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;

相关阅读 >>

Delphi获取pid的父进程文件名

Delphi 取得任意程序的命令行

Delphi 字符串分割

Delphi speedbutton按钮动态加载图片(从image和imagelist)

Delphi 字符串去掉最后一个字符

Delphi 判断驱动器盘符是否有效

Delphi判断字符串是否包含限制以外的字符 否则置空

Delphi json字符串转义

Delphi解决dll注入桌面卡的问题

Delphi 保存图片到数据库

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...