对Object Pascal编译器给类对象分配堆内存细节的一种大胆猜测(下)[8]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 mahongxi 的 blog

只是针对新的内存操作,而原来的s对象中从tbase中继承来的xy不会变,还是0,但我们发现,s中的xy已经改变,所以也可以证明tbase.create没有分配新的内存,只是对原有内存中的xy进行设置。

第三点,跟踪。这是最简单,最一目了然的方法,看看inherited create;到底有没有调用newinstance,实验证明,跟本没有调用。

 

但是,如果把tsub.create中的inherited create;改为tbase.create;情况则大不同了,用上面三种方式发现,它又分配了新的堆内存,这样不但没有达到程序员初始化数据的目的,反而造成了内存泄漏,而这样的bug是很难找到的。

本文关键:Object Pascal 分配内存
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top