move的疑惑 ( 积分: 50 )

  • 主题发起人 主题发起人 wzgss
  • 开始时间 开始时间
W

wzgss

Unregistered / Unconfirmed
GUEST, unregistred user!
TA=record
a1:byte;
..
var a1,a2 :TA
move(a1,a2,sizeof(TA))
这么写没有问题的.
///////
var a1,a2:array of TA

setlength(a2,high(a1)+1)
move(a1,a2,sizeof(TA)*high(a1)+1)
好像此有问题.
///////
TB = array of longint;
var b1,b2:TB

setlength(b2,high(b1)+1)
move(b1,b2,high(b1)+1*sizeof(longint))
有问题的.
如果 move(b1,b2,sizeof(b1));可以把数据移到b2,但不稳定.有时候会错误.
请高手解析一下.
-----------------------------------
CopyMemory(@b2[0],@b1[0],size*sizeof(longint));
 
动态数组,必须先指定长度的
var a1,a2:array of TA

setlength(a2,high(a1)+1)
move(a1,a2,sizeof(TA)*high(a1)+1)
好像此有问题.
这个肯定就有问题了
a1与a2的长度一样吗?你自己check以下
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
547
import
I
后退
顶部