rtTClasses=Class
arr:array of integer; //可以吗?
end;在create里setlength(arr,20); //可以吗?如果arr是指针,
TClasses=Class
arr:PSingle;
end;GetMem(arr,sizeof(Single)*20);
我想访问这个Single数组中的第10个怎么访问?
用arr+10^:=100; //这种没试过,可以嘛?
或者 arr^[10]:=100; //但是这种总是报告 缺少identifier type的错误
arr:array of integer; //可以吗?
end;在create里setlength(arr,20); //可以吗?如果arr是指针,
TClasses=Class
arr:PSingle;
end;GetMem(arr,sizeof(Single)*20);
我想访问这个Single数组中的第10个怎么访问?
用arr+10^:=100; //这种没试过,可以嘛?
或者 arr^[10]:=100; //但是这种总是报告 缺少identifier type的错误
TStrings是基于string的字符串数组,这里主要是基于浮点数或者整数的,所以并不适用。能有其他办法吗?
var
s:PSingle;
i:Single;
begin
GetMem(s,sizeof(arr)+1);
i:=100;
s^:=i;
FreeMem(s);参考
http://bbs.xiakexing.com/cgi-bin/topic.cgi?forum=37&topic=7&show=0
首先感谢你对我问题的关注;
但是你领会错偶的意思了吧?
我的问题是:在类中声明了一个动态数组(这样声明可以吗?),然后在类的构造函数中调用SetLength对这个动态数组分配空间,在其他成员函数中试图访问这个数组中的元素: TClass=Class
arr:array of Single; //可以在类中声明动态数组吗?
end;
constructor TClass.Create();
begin
SetLength(arr,100); //为类中的动态数组分配空间是这样吗?
end; function TClass.Setarr():Integer;
begin
arr+10^:=100; //欲访问arr[10]这个元素,
arr^[10]:=100; //这两种方式可以嘛?还是有其他的方式
end;
我是Delphi菜鸟,最近在修改一个C语言的程序到Delphi中,这些是其中遇到的问题,希望能帮忙解决
我是看你
arr:PSingle;
GetMem(arr,sizeof(Single)*20);
delphi中的数组访问也跟C的差不多,但delphi没有C那么强调指针。
delphi里的静态数组和动态数组有差别,访问静态数组的首地址要用取地址运算符@,
而动态数组则是直接用数组名(也即动态数组的数组名就是一个地址指针)。结贴,谢谢大家