C++ delete时出错解决思路
C++ delete时出错C/C++ codevoid main(){CFile myFile(myfile.txt,CFile::modeRead)DWORD len myFile
C++ delete时出错
C/C++ codevoid main(){ CFile myFile("myfile.txt",CFile::modeRead); DWORD len = myFile.GetLength(); char *content = new char(len); myFile.Read(content,len); int i = 0; while(i < len) { cout<<content[i]; i++; } delete content;//delete的时候会出错,不解!!!!!! cout<<len<<endl;}
错误说明:
Debug Error!
DAMAGE:after Normal block(#57) 0x0138EEB8
为什么会出现这种情况呢?如果不用new而用固定数组的话没有问题..
[解决办法]我想,lz应该是想分配和释放数组。
char *content = new char[len];
...
delete [] content;
[解决办法] char *content = new char(len);
这样只会new 出来一个char 并初始化成len
?char *content = new char[len]; 才是new一个数组
还有删除数组的时候,应该 delete [] content;
[解决办法]char *content = new char(len);
小括号?