thread 안에서 pointer를 사용했는데 이상한 결과가 나옵니다. 아래는
질문을 위해서 간소화시킨 source인데요...
Type
    Ttestthread	= class(TThread)
        global_p	: PChar;
        gsize		: integer;
        constructor Create(data : PChar; size : integer);
        procedure Execute; override;
        end;
var
    testthread	: Ttestthread;
implementation 
consturctor Ttestthread.Create(data : PChar; size : integer);
begin
    global_p	:= data;
    gsize		:= size;
	㉠
end;
procedure Ttestthread.Execute;
begin
	㉡
end;
end.
㉠ 에서 global_p 와 gsize를 출력해보면 parameter로 넘어온 값이 온전히
찍힙니다. 그런데 ㉡ 에서 찍어보면 쓰레기 값이 나오네요. 생각을 해봐도
왜 이렇게 되는 것인지 잘 모르겠습니다. global_p를 string으로 선언해서
같은 동작을 시켜보면 온전하게 나오더군요. constructor에서 받아들인
포인터값을 Execute에서는 왜 이상하게 나올까요?