new

来源:互联网 发布:贵州省供需科目大数据 编辑:程序博客网 时间:2024/05/18 02:33

在1中为什么用new()呢?因为1不像2已经有了一个大小为4的integer整型区域存在(即x)
怎么办?所以只好自力更生,利用new(a)在堆内分配一个空闲区域,然后再赋给它(堆内)
34;那位说了,为什么不可以直接a^:=34,看怎么讲了,凡是在栈内分配的内存空间,都是
随机值的:你不信? 
                       var
                          i,n:integer;
                        begin
                          showmessage(inttostr(i)+ '       '+inttostr(n))
                        end; 
                       

看它是不是0,也就是说a:^integer之后,a并不一定是NIL,而是一值(鬼知道),
所以a^:=34;这个语句是给具有地址为a的区域赋值为34,这样可以一些重要的
区域内容就给覆盖了,所以才new(a)分配一个安全区域。相反dispose(a)就是将a所指的堆内存