有strPCopy问题

linweifeng 2007-01-14 08:20:47
var
buf: array[0..9] of char;
begin
StrPCopy(buf, '1234567890');
end;
这样给buf赋值有没有问题,或StrPCopy(buf, '12345678901');(后面多了一个1)这样给buf赋值有没有问题,如果是源字符大于buf的大小,这样会不会内存使用出错,请高手指教.
...全文
319 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dBASEIII 2007-01-15
  • 打赏
  • 举报
回复
心血来潮发了这样一个贴子:
http://community.csdn.net/Expert/topic/5295/5295699.xml?temp=.5145227

楼主有时间可以光临
dBASEIII 2007-01-15
  • 打赏
  • 举报
回复
向楼上学习了.

另外,还可以这样赋值:

const
S = '1234567890';
var
buf: array[0..9] of char;
begin
Move(S, Buf, Length(Buf));
showmessage(string(buf));
end;
zhangl_cn 2007-01-15
  • 打赏
  • 举报
回复
var
buf: array[0..9] of char;
begin
StrPCopy(buf, '1234567890');
end;

/////////////////////

会出异常,因为StrPCopy会在buf的末尾加入\0(NULL)做为字符串结束符,而这个位置落在buf数据组之外,会出现写地址错
dBASEIII 2007-01-14
  • 打赏
  • 举报
回复
好象不可以的

你可以这样的,你试一下吧:

var
Buf : array[0..9] of char;
begin
CopyMemory(@Buf, PChar('1234567890123456789'),Length(Buf));
showmessage(string(Buf));
end;

xylegend 2007-01-14
  • 打赏
  • 举报
回复
mark

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧