关于动态数组的扩充!(100分)

  • 主题发起人 主题发起人 yabbi
  • 开始时间 开始时间
Y

yabbi

Unregistered / Unconfirmed
GUEST, unregistred user!
各位:
我遇到这个问题,就是载程序运行的时候还不知道用户需要的数组的大小,
所以我知道Delphi中使用Move能够重新分配空间给数组,可是我需要不影响已经
分配空间的数组的内容,是否可以;
简单点说就是 开始 A[100],后来想要A[200],不过可是前面的A[100]的内容不能
变化,应该怎么做?
 
setlength分配
 
其实就是动态数组么~~
你完全可以根据客户的需求动态设定数组的大小的~~

SetLength(A,100),
........
........
SetLength(A,200);//并不会影响前面分配的数组元素的,偶是这么认为的
........ //即使影响,你也完全可以另外开一个数组,作为暂存数组来保存前面的数组元素么~~
 
setlength(a,200)
 
setlength(a,200)
 
定义:
var
DArray: array of integer;

使用:
SetLength(DArray, 200);
 
再定义一个B也是动态数组,在A变化时将B定义为和A一样长,然后将A的内容先Copy到B

改变A的长度先把B拷过来,再把后面的接上。

没有什么新意,不过我原来也是这样做的。如果你想方便些就看看如何使用TSringList吧
这是一个工具类,是个链表。比动态数组方便多了。
 
SetLength(A,????)
 
setlength 满足你的要求
 
本来昨天我就结算乐,可是今天来看发现还没有
:)
 
多人接受答案了。
 
后退
顶部