为何DELETE会出错呢
为什么DELETE会出错呢?Buffer new BYTE[ 1520 * Count ].............delete [] Buffer为什么会出错呢
为什么DELETE会出错呢?
Buffer = new BYTE[ 1520 * Count ];
.............
delete [] Buffer;
为什么会出错呢?
Debug Assertion Failed,然后出现着一个框.
怎么办呢?
[解决办法]
delete之前先判断一下?
if(Buffer==NULL)
perror("create new block failed"),exit(-1);
[解决办法]
[解决办法]确定delete以后没用到这个指针了么 ,
delete后置为NULL
[解决办法]delete Buffer;
不要[]
[解决办法]同意二楼。
delete后立即置为NULL。
delete前先判断,只有非NULL才删除。
[解决办法]如果 delete 的话,一定要 []。
[解决办法]确定是delete这句的错误么?那么有可能是new Buffer失败了。
[解决办法]如果是先后new了好几个指针,那么不一定是Buffer本身的问题,应该是在delete前面一个指针时,如果该指针在使用时出现了越界,正好影响到Buffer所分配的区域,那么在删除buffer的时候,就会报错
所以,如果是这种多个指针同时分配的情况,检查一下前面几个指针的访问是否有越界之类的情况
[解决办法]看你谢谢代码
除了ZeroMemory( StrArray,sizeof(StrArray));有些问题
其它应该不会出错
[解决办法]BYTE *p=new BYTE[10000];
if (p!=NULL)
{
delete []p;
}
我这样根本没有出错啊,
你的这个GlyphInfo是什么类型的????还有这个StrArray ??
[解决办法]ZeroMemory( StrArray,sizeof(StrArray));
ZeroMemory( StrArray,Count * 1520);
把这两句去掉试试