System.GetMem과 System.ReallocMem의 차이점은 무엇입니까?GetMem x ReallocMem
ReallocMem 용 Delphi 2009 Help는 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;
솔루션명의 조언 후, 레코드 유형으로 FItems는, 동적 배열, SetLength를 같이 TMemberDataList을 기록 포인터하지 선언
(드) 배열 배열, 데이터에 새로 만들기/삭제하기
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;
업데이트 된 사용법에 따라 배열이 구성원 데이터를 "소유"한 것처럼 보입니다. 구성원 데이터 레코드를 가리키는 대신 PMemberData 대신 TMemberData의 배열을 만들어 코드를 단순화 할 수 있습니다. –