【发布时间】:2014-01-26 02:08:06
【问题描述】:
在 MSVC++ 中,首先我创建了一个 vil_image_view 容器(im_1)并通过给出大小(行和列)来分配内存,然后我为该指针分配了一个 NULL 值,在这两个步骤之后我创建了另一个图像容器(im_2 ) 并执行相同的程序来分配内存,我注意到两个容器的内存地址是相同的。这是完全随机的吗?或者分配和释放是如何发生的?
vil_image_view 是来自 vxl 库的图像容器,它是一个共享指针,当引用计数器变为零时,该对象将被自动删除
vil_image_view<float> im_1;
im_1.set_size(n,m); //0x05773ff0
im_1 = NULL; //0x00000000
vil_image_view<float> im_2;
im_2.set_size(n,m); //0x05773ff0
【问题讨论】:
-
如果你
malloc一个内存块,然后free它,然后malloc再次具有相同大小,很有可能你会得到相同的块 - 它位于free list 的顶部
标签: c++ pointers memory memory-management