读书人

C++ delete时出错解决思路

发布时间: 2012-04-28 11:49:53 作者: rapoo

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);

小括号?

读书人网 >C++

热点推荐