+ -
当前位置:首页 → 问答吧 → 动态数组的复制问题

动态数组的复制问题

时间:2011-12-10

来源:互联网

一、
Delphi(Pascal) code

var
  DataBuf, TmpBuf: array of Byte;
begin
  TmpBuf:= Copy(DataBuf, 0, 72);
end


二、
Delphi(Pascal) code

var
  DataBuf: array of Byte;
  TmpBuf: array of Byte;
begin
  TmpBuf:= Copy(DataBuf, 0, 72);
end


如上两段代码所示,(代码没写全),假设我要从动态数组DataBuf拷贝72个字节到TmpBuf。
编译时第一段代码没问题,第二段会在Copy函数处提示“Incompatible types”错误。
这是为什么?

作者: equn93   发布时间: 2011-12-10

你定义的是动态数组,编译器当作指针类型

局部的指针类型,声明后不自动分配内存,但会随机指向一个地址
定义在一起,编译器可能把2个变量都指向同一个指针地址,可以相互交换
分开了,地址就不同了,要初始化才行

这是我的理解哈

作者: kaikai_kk   发布时间: 2011-12-10

热门下载

更多