Debug Assertion Failed

来源:互联网 发布:苏州大禹网络 知乎 编辑:程序博客网 时间:2024/05/01 07:38

产生上面问题的原因:

1.在程序里释放了野指针:

#include <iostream>
using namespace std;


void main()
{
int *p ;
delete p;//////////////释放野指针指向内容执行错误
}

 

 

#include <iostream>
using namespace std;


void main()
{

int *p =new int(1);
delete p;////////////////////////释放p指向的内存后P变成了野指针
delete p;///////////////////////释放野指针指向的内存发生错误
}

 

 

#include <iostream>
using namespace std;


void main()
{

int *p =new int(1);
delete p;
p=0;/////////重新定位p指针指向的内容为null
delete p;///////////释放P指向的内存不会错误
}  

 

2.delete 所释放的内存只能是堆内存,企图用他们来释放栈内存,会导致 debug asserttion failed!

栈区的内容是会自动释放的,不需要手动去释放

原创粉丝点击