在C语言中大略实现VC++中的LISTARRAY功能方法(二)

在C语言中大概实现VC++中的LISTARRAY功能方法(二)


此方法是由方法1发展而来,在方法1中添加了两个参数,一个是SIZE参数,一个是CHANGESIZE参数,SIZE参数是初始化时的数组容量,CHANGESIZE是在数据刚好达到SIZE时将数组容量改变的数组添加或减少的容量。比如初始大小为SIZE,然后当数组增加到SIZE的时候要存储第SIZE + 1个数据的时候就重新申请一块比SIZE大CHANGESIZE的内存,然后再将数据转移进去,将原内存释放,将新内存的指针保存。减少是一个道理的,当减到SIZE的时候,将原尺寸减个CHANGESIZE,然后申请内存,转移数据,释放老内存,保存新指针。

此方法的好处是不用每次都申请、释放内存、转移数据,操作LIST比较频繁的时候,用此方法比用第1种方法在速度上有优势!