API函数的字符串字串缓冲区为什么要应事先初始化成字符串的长度+1,搞不懂为什么要+1

度年如日1668
企业官方账号
2014-01-21 11:26:19
例如这个API
GetSystemDirectory
按我的理解,那个字符串缓冲区只初始化为实际长度大小就可以了,为什么还要+1?难道字符串最后还加了
一个字符的其它东西吗?
...全文
148 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
都市夜猫 2014-01-21
  • 打赏
  • 举报
回复
因为 c 语言要用一个 ascii 0 来标识字符串的结束
这样看:
cc = ''
nn = GetSystemDirectory(@cc, 0)
cc = Space(nn)
GetSystemDirectory(@cc, nn)
? nn, cc
你可以看到,尾部多个一个 chr(0)
所以,如果你不希望出现尾部的chr(0), 则应该指定 nn = 19,但 cc 的长度应该是 19+1=20

2,748

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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