System.GetMem和System.ReallocMem有什么区别?GetMem x ReallocMem
Delphi 2009对ReallocMem的帮助,与GetMem完全一样。 怎么样System.FreeMem和System.Dispose
我应该用什么数组?
type
PMemberDataList = ^TMemberDataList;
TMemberDataList = array[0..MaxClassMembers -1] of PMemberData;
var
FItems: PMemberDataList;
begin
GetMem(FItems, Value * SizeOf(Pointer));
FreeMem(FItems);
end;
或
begin
ReallocMem(FItems, Value * SizeOf(Pointer));
Dispose(FItems);
end;
SOLUTION
人意见后,我宣布FItems为记录类型,而不是指针记录,TMemberDataList动态数组,SetLength来(德)分配数组,新建/处理数据
type
PMemberDataList = ^TMemberDataList;
TMemberDataList = array of PMemberData;
var
Items: TMemberDataList;
Item: PMemberData;
// Add
begin
Setlength(Items, 1);
New(Item);
Items[0]:= Item
end;
// Remove
begin
Dispose(Items[0]);
Setlength(Items, 0);
end;
根据您更新的使用情况,它看起来像数组“拥有”成员数据。您可以通过使其成为TMemberData而不是PMemberData的数组来简化代码,而不是指向成员数据记录。 – 2009-02-23 19:06:06