用最少的分买最难的题目的答案(5分)

  • 主题发起人 主题发起人 chbqq
  • 开始时间 开始时间
C

chbqq

Unregistered / Unconfirmed
GUEST, unregistred user!
要怎么定义一个动态数组,下标要从1开始,类型要自己写的record类型 ,varArrayCreate能用自己定义的record类型吗?
 
我不要下标减1来实现
 
用TList好了,很方便.
 
模仿TList的array相关处理
 
那个下标“0”你不用不就完了吗,只是 Length 会少了一个
 
动态数组下标永远是0开始的,这是Delphi编译器决定的
 
错,只是自己定义的record不知道怎么设,其他系统的类型是可以的
 
array[1..500] of <br>行不行?
 
类型要自己写的record类型 !拜托
 
TO 楼主:<br>Type<br> &nbsp;//定义你自己的记录类型<br> &nbsp;TXXXX = record<br><br> &nbsp;end;<br><br>var<br> &nbsp;RecordArray: array of TXXXX; &nbsp;//声明动态数组
 
楼上抢先了
 
下标要从1开shi
 
从什么开始都不重要的,这样做嘛(事实上,在D4以前没有动态数组的时候我们都这样做的)<br>TMyDataStru = record<br> &nbsp;...<br>end;<br>TMyDataStrus = array [0..1] of TMyDataStru;<br>PMyDataStrus = ^TMyDataStrus;<br>...<br>procedure SetMyDataLen(var P: PMyDataStrus; Count: Integer);<br>var<br> &nbsp;DataSize: Integer;<br>begin<br> &nbsp;DataSize:= (Count + 1) * SizeOf(TMyDataStru);<br> &nbsp;GetMem(P, DataSize);<br> &nbsp;PInteger(Pointer(P))^:= Count;<br>end;<br>function SizeOfMyData(P: PMyDataStrus): Integer;<br>begin<br> &nbsp;Result:= PInteger(Pointer(P))^;<br>end;<br>procedure FreeMyData(var P: PMyDataStrus);<br>begin<br> &nbsp;FreeMem(P, (PInteger(Pointer(P))^ + 1) * SizeOf(TMyDataStru));<br> &nbsp;P:= nil;<br>end;
 
后退
顶部