首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

:结构体转成字符串出现的有关问题

2012-02-15 
求助:结构体转成字符串出现的问题问题是这样子的比如typedata_messrecordpw:string[4]endvarpppp:data_

求助:结构体转成字符串出现的问题
问题是这样子的
比如
type
  data_mess=record
  pw:string[4];
  end;
var
  pppp:data_mess;
  aaaa:string;
begin
  pppp.pw:=#1+#1+#1+#4;
  SetLength(aaaa,SizeOf(pppp));
  Move(testpack,aaaa[1],SizeOf(pppp));
...
end

我在单步调试时查看这个 SizeOf(pppp) 这个值 为什么是5呢???

还有个问题

我把两个字符串合并后转成字节数组时
比如
 s1,s2:string[4];
 s:string;
 qqqq:array[0..7] of byte; 
....
s:=s1+s2;
Move(s[1],qqqq[0],SizeOf(s));

我查看了下qqqq的值 只有前四个是正确的也就是S1对应的字节 后边的出现了混乱
我觉得这样子合并字符串后会不会出现了错误了~

这两个问题 应该怎么解决呢?~

请教下高手~

[解决办法]
sizeOf(s)这个有问题,你的这个只是获取了s这个指针的长度,你要用Length
[解决办法]
string是一个指针,不能用SizeOf来获取内存的大小
[解决办法]
string[4];这类短字符声明,内存中会多出一个位来保存他的实际长度,所以SizeOf会是5,而length正是取的多出的这个位置的值,是4

热点排行