c++/c中free已经free过的内存会出现的现象

来源:互联网 发布:数据库语句大全 编辑:程序博客网 时间:2024/05/16 00:55
/**********************************************************************                        测试多次free的后果***********************************************************************/#include<iostream>#include<cstdio>using namespace std;int main(){int *p = (int *)malloc(100);free(p);cout<<"已经free一次了,再free一次..."<<endl;free(p);return 0;}

其中的_CrtIsValidHeapPointer(pUserData)在MSDN中的描述是:
The _CrtIsValidHeapPointer function is used to ensure that a specific memory address is within the local heap. The “local” heap refers to the heap created and managed by a particular instance of the C run-time library. If a dynamically linked library (DLL) contains a static link to the run-time library, then it has its own instance of the run-time heap, and therefore its own heap, independent of the application’s local heap. When
_DEBUG is not defined, calls to_CrtIsValidHeapPointer are removed during preprocessing.

 

为了防止迷途指针,或者是多次free()带来不可预知的异常,最好是将对应的指针,置为NULL,这样比较安全。

原创粉丝点击