다음과 같은 코드.
function A: TList;
var
List: TList
P: Pointer;
begin
P := AllocMem(10);
List := TList.Create;
List.Add(P);
FreeMem(P);
FreeAndNil(List);
Result := List;
end;
이런코드가 있다면
여기서 FreeMem과 FreeAndNil를 해줘야 하나요-_-안해줘야하나요
또한 어떤 포인터형의 레코드 PB가 있다고한다면
메모리 할당후에 PB^.Field 와 PB.Field 둘다 접근이 가능한데
-_-; 원래라면 PB^가 정답이겠죠?
읽어주셔서 감사합니다.
어렵군요.. 값이 제대로 안나오니..디버깅도 잘안돼고..아아
모든게 다 어려운순간..
var
List: TList
P: Pointer;
begin
P := AllocMem(10);
List := TList.Create;
List.Add(P);
FreeMem(P);
Result := List;
FreeAndNil(List);
//또는 List.Free;만해도 되는데...
end;
이렇게 해야 합니다.. ^^
그럼 수고하세요..