delphi 中关于动态数组指针的问题 动态数组本身的长度是未知的,本质上认为,动态数组就是一个指针。他的长度在你setlength(arr,n)的时候才被设置,相当于给动态数组申请一段内存空间,空间大小为sizeof(double) * n。这里面的pop是一个指针,指向另一个指针(动态数组),而且为对其申请空间也未将其指向某个内存地址(动态数组)。那pop^是未定义的。对一个未定义的东西,还要来一下setlength,这是什么意思? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 pop: pDoubleArray;popdest: TDoubleArray setlength(popdest,M*D);pop := @popdest; a:array of char 动态数组 a 和 @a[0]等价。动态数组名a是一个指针,是数组首地址。b:array[0...99] of char 静态数组 @b 和 @b[0]等价。静态数组名b是一个变量,是数组首元素的值b[0] procedure TForm1.Button1Click(Sender: TObject);type TDoubleArray = array of Double; // 定义动态数组类 PDoubleArray = ^TDoubleArray; // 定义指向动态数组的指针var A:TDoubleArray; // 声明动态数组的变量 pop: pDoubleArray; // 声明动态数组指针的变量 M,D:integer; // 声明决定动态数组大小的变量begin M:=12; D:=11; setlength(A,M*D); // 设置动态数组A的长度 pop:=@A; // 将动态数组A的地址引入 Pop指针变量 end;上述代码运行正常,可以说明你的问题了。 往ListView里面添加数据的问题 delphi 删除数据库文件 请教存储过程? 轻松获得分数!!!up有分 dbchart的使用方法 如何动态调用DLL,还有就是如公何调用VB写的DLL?? 各单位注意:本人出售源代码一套(医院管理系统) 如何汉化Rave的界面? 在SqlServer 7.0中,关于raiserror的问题 如何用Delphi动态实现windows菜单功能 adoQuery如何判断数据集中哪些行被删除 xe5的android开发,如何把mp3文件打包到APK中?
pop: pDoubleArray;
popdest: TDoubleArray
setlength(popdest,M*D);
pop := @popdest;
type
TDoubleArray = array of Double; // 定义动态数组类
PDoubleArray = ^TDoubleArray; // 定义指向动态数组的指针
var
A:TDoubleArray; // 声明动态数组的变量
pop: pDoubleArray; // 声明动态数组指针的变量
M,D:integer; // 声明决定动态数组大小的变量
begin
M:=12;
D:=11;
setlength(A,M*D); // 设置动态数组A的长度
pop:=@A; // 将动态数组A的地址引入 Pop指针变量
end;上述代码运行正常,可以说明你的问题了。