动态数组介绍----Delphi(4)

2008-04-09 04:28:03来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

len := PLongint(PChar(P) - 4)^; // 变量的长度 ,偏移量 -4

if index >= len then //要删除的位置超出范围,退出

Exit;

MaxDelete := len - index; // 最多删除的数量

Count := Min(Count, MaxDelete); // 取得一个较小值

if Count = 0 then // 不要求删除

Exit;

Dec(len, Count);// 移动到要删除的位置

MoveMemory(PChar(P) index*elSize , PChar(P) (index Count)*elSize , (len-index)*elSize); //移动内存

Dec(P); //移出 “数组长度”位置

Dec(P); //移出“引用计数” 位置

//重新再分配调整内存,len 新的长度. Sizeof(Longint) * 2 = 2*Dec(P)

ReallocMem(P, len * elSize Sizeof(Longint) * 2);

Inc(P); // 指向数组长度

P^ := len; // new length

Inc(P); // 指向数组元素,开始的位置

PLongint(A) := P;

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Delphi制作数据感知控件之浮想联翩

下一篇:Delphi中的算术运算函数