首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++ delete时出错解决思路

2012-04-28 
C++ delete时出错C/C++ codevoid main(){CFile myFile(myfile.txt,CFile::modeRead)DWORD len myFile

C++ delete时出错

C/C++ code
void 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);

小括号?

热点排行