小
小笨苯
Unregistered / Unconfirmed
GUEST, unregistred user!
书上说,PChar是一个指向字符串的指针,主要是为了使用C/C++的DLL,或WindowsAPI,起到
兼容作用的。说使用PChar时,必须先分配内存,再赋值,使用后再释放内存。可我下面这
一小段程序,并没有分配内存呀?为什么也能编译成功,而且执行正确呢?
procedure TForm1.Button2Click(Sender: TObject);
var
strTmp: AnsiString;
pstr: PChar;
begin
{ do something }
strTmp := 'I am a Chinese';
pstr := PChar(strTmp);
strTmp := '';
Caption := pstr;
end;
兼容作用的。说使用PChar时,必须先分配内存,再赋值,使用后再释放内存。可我下面这
一小段程序,并没有分配内存呀?为什么也能编译成功,而且执行正确呢?
procedure TForm1.Button2Click(Sender: TObject);
var
strTmp: AnsiString;
pstr: PChar;
begin
{ do something }
strTmp := 'I am a Chinese';
pstr := PChar(strTmp);
strTmp := '';
Caption := pstr;
end;