new

new 
1. 
var 
    a:^integer;               {在栈内分配内存,指针型a所占的内存大小为4} 
begin 
    new(a);                   {在堆内分配出一大小sizeof(integer)地址赋予a}                             
    a^:=34;                   {地址为a的内存区域(堆内)被赋予值:34}   
    showmessage(inttostr(a^)); 
    dispose(a);               {释放在堆内分配的空间,堆内分配的空间不会自动释放} 
end;                          {a本身在栈中所占的地盘自动归还,这是栈的特点}   

2. 
    var 
    x,y:integer;              {在栈内分配内存,x,y所占的内存大小为4} 
    a:^integer;               {在栈内分配内存,指针型a所占的内存大小为4} 
begin 
    x:=34;                    {x被赋予值:34}     
    a:=@x;                    {a被赋予x的地址,这个地址当然是位于栈内} 
    y:=a^;                       
    showmessage(inttostr(y)); 
end; 


posted on 2010-11-23 18:48  haiou327'Blog  阅读(217)  评论(1)    收藏  举报

导航