2
A
回答
2
大多数堆实现不允许指向无效指针(即,当您的delete
地址未由堆返回给您时)。几乎可以肯定的是标准窗口堆和CRT的堆(由MSVC实现)在这种情况下会产生调试断点。
你也可以替换new
/delete
运算符的实现并自己检查(在你的情况下你只想检查地址是否属于堆栈内存,这很容易)。
2
相关问题
- 1. 删除堆栈中的对象?
- 2. 堆栈上的对象意外删除
- 3. 的MongoDB - 捕捉删除的对象由封闭的收集
- 4. HighCharts删除堆栈总数
- 5. popBackStack删除所有堆栈?
- 6. 用JS对象捕捉
- 7. 硒和捕捉对象
- 8. 堆栈或堆上的对象分配
- 9. 堆栈/堆上的对象创建?
- 10. 捕捉EmptyStackException与测试是堆栈是空的
- 11. Python是否有静态对象,堆栈对象和堆对象?
- 12. 堆栈中的对象vs C++堆中的对象
- 13. Xamarin.Forms棱镜从导航堆栈删除视图堆栈
- 14. 对象的堆栈上或堆栈上的隐藏成员?
- 15. 从Presentmodelview删除的UIViewController堆栈
- 16. 删除堆栈中的顶部片段
- 17. 的UINavigationController:如何删除堆栈
- 18. 如何捕捉“超出最大调用堆栈大小”错误?
- 19. 如何捕捉64位应用程序堆栈损坏?
- 20. 捕捉对象到Python的脚本
- 21. 从堆栈面板删除元素
- 22. jQuery从堆栈中删除元素
- 23. 堆栈溢出错误而删除树
- 24. 在C++中删除堆栈变量
- 25. 使用堆栈删除二叉树
- 26. 从子堆栈中删除Perl模块
- 27. 从导航堆栈中删除网页
- 28. Android:从堆栈中删除活动
- 29. Iphone导航控制器删除堆栈
- 30. 从堆栈中删除活动
你的意思是在基于堆栈的对象上显式调用'delete'的意义? – 2011-05-19 12:55:12
您是否尝试过在堆栈对象的类的析构函数中放置一个断点,或者在堆栈对象即将清理之前的方法末尾? – 2011-05-19 12:56:10
如果该类的所有对象始终位于堆栈上,则可以给它一个私有的,未实现的'operator delete'。 – 2011-05-19 12:58:23