P
poy
Unregistered / Unconfirmed
GUEST, unregistred user!
写了一个测试:
procedure TForm1.Button1Click(Sender: TObject);
var
s :widestring ;
begin
s :='abcde';
caption := inttostr(length(s)) ;
end;
s只是个指针指向内存中的widestring对象,于是在 第二行中设断点,执行时打开CPU,看到的指向是$001489A8,再看$001489A8,确是存放 a: '$0061' b'$0062' c '$0063' d'$0064' ,可是有个疑问:我认为widestring对象应该在堆中,而这个$001489A8地址虽然它也不是在栈,但让我怀疑是否是在堆内,如若不是那它又是在哪?
请高手解惑 !
procedure TForm1.Button1Click(Sender: TObject);
var
s :widestring ;
begin
s :='abcde';
caption := inttostr(length(s)) ;
end;
s只是个指针指向内存中的widestring对象,于是在 第二行中设断点,执行时打开CPU,看到的指向是$001489A8,再看$001489A8,确是存放 a: '$0061' b'$0062' c '$0063' d'$0064' ,可是有个疑问:我认为widestring对象应该在堆中,而这个$001489A8地址虽然它也不是在栈,但让我怀疑是否是在堆内,如若不是那它又是在哪?
请高手解惑 !