首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

[请问]delete的相关有关问题

2012-03-04 
[请教]delete的相关问题小弟对指针的释放有点疑惑:指针是怎么样保存它所指区域的大小信息的?它本身只有四

[请教]delete的相关问题
小弟对指针的释放有点疑惑:
指针是怎么样保存它所指区域的大小信息的?它本身只有四字节,里面应该只是存储所指区域的地址吧。那所指区域的大小信息是存储在哪的?
难道说存在编译器的符号表中?delete所引发的释放操作发生在运行时吧?编译器在那时根本发挥不了作用啊。
为什么delete能释放正确的size?即使是释放void*时。
希望大哥大姐们指点一下。

[解决办法]
不能调用正确的析构函数就可能出现问题啊,可能导致一些资源没有被释放

关于delete operator如何知道应该释放多大内存,这儿有篇文章可以看看:

如何在Linux操作系统下检测内存泄漏
http://os.yesky.com/lin/118/2595618.shtml

[解决办法]
指针是怎么样保存它所指区域的大小信息的?它本身只有四字节,里面应该只是存储所指区域的地址吧。那所指区域的大小信息是存储在哪的?
-------------------------------------------------
一般在指针所指向区域的前面的一小块区域中存放块的相关信息(称为“cache”)。

热点排行