var
pa:array of array of double; ... setlength(pa,100,100); 此句报错 setlength(pa,10000); 改成这样能通过,但后面使用中出错
是什么原因,是不是delphi的数组大小定义有限制
pa:array of array of double; ... setlength(pa,100,100); 此句报错 setlength(pa,10000); 改成这样能通过,但后面使用中出错
是什么原因,是不是delphi的数组大小定义有限制
解决方案 »
- c++ 2 pascal
- rzpagecontrol设计多页面窗体时的问题
- 一个ADOConnection1多事务处理问题,在线等待急!
- 树型checkbox设置权限问题
- 求助一个你们编程也会遇见的问题
- 关于上传,下载的问题~在线等!!
- 请教MDI子窗体的问题。
- 给位兄台!小弟有要事相求!!!!!来者分!!!!!
- 出现"Statement expected,but expression of type'TfrxCustomPreview'found",就如何解决?
- 對我是大問題對你可能是小問題!!!送100分
- TADOTable控件上有Lookup字段,还可以使用Table.Append([...])函数吗???
- 哪位大哥能教教小弟如何制作自制的可以拖动的组件???急!!!万分感谢!!!
还需要定于第二层的,setlength(pa,100)
for N:=0 to 99 do
setlength(pa[N],100)
应该SETLENGTH(PA,100*100)
这样就可以了。
var
pa:array of array of double; ... setlength(pa,100,100); 此句没有任何问题 setlength(pa,10000); 此句肯定会出错,无论你是用一维还是二维的方式存取。因为定义是用二维的,而设置长度却是一维的,实际设置的是行,不出错才怪。
并不是delphi的数组大小定义有限制
第一种是一次性把两维的长度都设置了。
第二种只设置了第一维,但可以接着设置第二维。
比如
setlength(pa,100);
setlength(pa[0],100);
setlength(pa[1],100);
...
setlength(pa[99],100);
你的错误不是这个设置的原因。
补充一点,第二点的好处是显而易见的,因为请看:
type
TTestArray:array of array of double;
var
Array1,Array2:TTestArray;
//用第一种即一次性指定的方法,方便但缺少灵活性
SetLength(Array1,100,100);
//用第二种即先指定第一维的方法,麻烦但太灵活了
SetLength(Array2,100);
SetLength(Array2[0],10);
SetLength(Array2[1],25);
...
SetLength(Array2[35],5);
...
SetLength(Array2[99],100);