S
skyweb
Unregistered / Unconfirmed
GUEST, unregistred user!
FillChar等不能清零的数组有:
a: array[0..100] of string;
b: array[0..100] of TObject;
...
因为对象都是存在堆中的,数组中只是存的指针,清除数组的结果是...,内存泄漏
同样的道理可用于string类型和其它只存指针在数组里的类型.
记录也是一样:
Ta = record
a1: integer;
a2: string[3];
end;
可以正常清除
Tb = record
b1: integer;
b2: ansistring;
end;
不能正常清除
综上所述,FillChar等函数并不是万能的.只能正确清除简单数据类型的数组和记录.
实在不行的时候,你只能for它一次了
a: array[0..100] of string;
b: array[0..100] of TObject;
...
因为对象都是存在堆中的,数组中只是存的指针,清除数组的结果是...,内存泄漏
同样的道理可用于string类型和其它只存指针在数组里的类型.
记录也是一样:
Ta = record
a1: integer;
a2: string[3];
end;
可以正常清除
Tb = record
b1: integer;
b2: ansistring;
end;
不能正常清除
综上所述,FillChar等函数并不是万能的.只能正确清除简单数据类型的数组和记录.
实在不行的时候,你只能for它一次了