_BLOCK_TYPE_IS_VALID宏用来检测这个内存块在当前堆上是否有效,但是这里的指针是一个临时变量,临时变量是在栈上分配的,函数清理栈时会自动回收这些内存,程序员无需管理。
程序员new 和 malloc申请的内存是位于堆上面,程序不会自动清理,这就是区别所在。
因此,检查你所释放(delete 或 free)的那个指针,不是动态申请的就别画蛇添足去释放了。
今天我出现这个错误正是因为删除了一个本来没有动态定义的指针。
本文探讨了堆和栈内存管理的区别,特别是针对程序员在使用new或malloc申请内存时常见的误区进行了解析,并强调了正确释放内存的重要性。
程序员new 和 malloc申请的内存是位于堆上面,程序不会自动清理,这就是区别所在。
因此,检查你所释放(delete 或 free)的那个指针,不是动态申请的就别画蛇添足去释放了。
今天我出现这个错误正是因为删除了一个本来没有动态定义的指针。

被折叠的 条评论
为什么被折叠?