VS2010中用VC++编程当运行到delete释放内存就出现死锁。
例如:
#include <iostream>
using namespace std;
int main()
{
char * p= new char[10];
p="abcdef";
char * up = p;
while(*up!='\0')
{
cout<<*up;
up++;
}
delete[] p;
if(p!=NULL)
cout<<"\n未释放内存。";
return 0;
}
运行到delete语句那里就动不了了。
[解决办法]
p="abcdef";
p指向的内容已经变了,不指向之前分配的内存。delete "abcdef"当然会出错。