关于pchar的问题(在线等待)(100分)

  • 主题发起人 sandyhappy
  • 开始时间
S

sandyhappy

Unregistered / Unconfirmed
GUEST, unregistred user!
我在使用pchar类型变量时,经常出现这种情况,
在getmem以后,pchar变量内容里不为空
将其清空后,向里边写一定长的字符串,之后在字符串的最后又出现一些
莫名其妙的字符,pchar是一个内存指针,而我分配的长度和我的字符串
长度一样,为什么还会包含其他内存地址中的数据。
有没有对于pchar讲解很详细的文章?大家帮帮忙。
 
可以用StrAlloc和StrDispose代替GetMem,FreeMem
 
PChar类型和C里面字符串的一样的都是以 #0结尾的, 也就是说实际长度+1
 
你的程序是怎么写的?
可能是你的getmem写的不正确
 
另外,赋值时用StrCopy
 
pchar是以 0 结尾的,长度+1才是实际长度,你设成一样,找不到0系统不会停止,会一直
向后找,直到0,后面当然是乱码
 
getmem(tbody.sm_content,sm_length^)
其中Tbody.sm_content为pchar,sm_length^为字符串长度,我看了,却是是我要求的长度
赋值的时候,从一段数组中截取,所以我用了循环截取
 
果真是那个结尾0字符的问题
但是我分配了长度+1好像也不行,后来我结束以后就在字符串长度+1的位置写一个#0
就OK了,谢谢
 
顶部