TSPoint = record
X: SmallInt;
Y: SmallInt;
end;
var
PTArray: Array of TSPoint;
procedure TForm1.Button1Click(Sender: TObject);
begin
GetMem(PTArray, SizeOf(TSPoint) * 2);
SetLength(PTArray, 2);
PTArray[0].X := 1;
PTArray[0].Y := 2;
PTArray[1].X := 3;
PTArray[1].Y := 4;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
FreeMem(PTArray, SizeOf(TSPoint) * 2);
end;
이렇게 실행하면 프로그램이 패닉(^^)에 빠집니다.
class EInvalidPointer with message 'Invalid pointer operation'.......
이런 메시지를 띄우면서
어떻게 Free를 해야하나요?
제발 도와주세요.
패닉룸에서.........
너무 문구에 매여 이런 불상사를 초래했나봐요.
GetMem을 모두 지우고 SetLength로 바꾸었습니다.
정말 감사합니다.