_BLOCK_TYPE_IS_VALID宏用来检测这个内存块在当前堆上是否有效,但是这里的指针是一个临时变量,临时变量是在栈上分配的,函数清理栈时会自动回收这些内存,程序员无需管理。
程序员new 和 malloc申请的内存是位于堆上面,程序不会自动清理,这就是区别所在。
检查你所释放(delete 或 free)的那个指针,不是动态申请的就别去释放了。
本人是有一个int a[6]数组,在析构函数里写了delete[] a; 这样是不对的。删除掉。一般的程序都是在哪分配的内存,在哪释放,类内部没有为其分配内存。