begin
SetLength(X, 1);
……
SetLength(X, 2);
……
SetLength(X, 3);
end;
问题是后面重新分配的时候是在原来的基础上新增呢还是所有内存重新分配
如果是后者,那么重新分配后,前面的元素的内存是不是不确定的呢?从而导致前面的元素数据错乱了
SetLength(X, 1);
……
SetLength(X, 2);
……
SetLength(X, 3);
end;
问题是后面重新分配的时候是在原来的基础上新增呢还是所有内存重新分配
如果是后者,那么重新分配后,前面的元素的内存是不是不确定的呢?从而导致前面的元素数据错乱了
解决方案 »
- 这种条件编译能实现吗?
- 100分求回溯法法8皇后问题delphi源码
- 问一个简单的问题,怎样在delphi中使用access数据库?
- 报表问题(小的没分了,请不要见怪~!有分一定大大送上!)
- EXCEL换行的问题?
- select * from table1 a where a.fld1 in ('abddeedd') 为何不出正确结果
- 请教各位前辈-十万火急(在等侍)
- 6.0的高手請進
- Delphi之未经证实的葵花宝典下载了打不开怎么办?错误信息如下:
- 如何在delphi中对一个DOS程序要求输入2次参数的程序进行调用并拦截dos下的输出?
- qq登录后窗口右下角自动出现一消息框
- TextRect编译不过。
但是前面内容的指针就不能确定了
如:
var
piList : array of integer;
P : PInteger;
begin
SetLength(piList , 1);
P := @piList[0];
P^ := 0; //这个指针没问题
SetLength(piList , 100);
P^ := 0; //这个指针就不确定,需要重新给指针赋值
因为有可能整个区域都移动了,所以指针是不确定的,注意是有可能,因此指针要重新赋值,才能保证程序准确无误