先贴代码:
{
//something
unsigned char* psrcRead = new unsigned char[100];
memset(psrcRead, 0, 512);// >100!!!,这里是造成错误的原因
//something
char *test = new char[1024];//在这里报错了
//something
}
该代码会产生运行时异常,
memset将不属于psrcRead的后面的内存也清空了,造成test申请空间失败。
在工程项目中,这样的问题一般我们会优先关注与当前报错的行,但是实际上是前面引发的错误。至于到底是哪里引发的,相对会比较难查。
看来尽量少用数字是正确的。
将512改成100即可运行正常