1.内存申请:
unsigned char *pesData = NULL;
pesData = (unsigned char*)malloc(1024*50);
memset(pesData, 0x0,1024*50);
2.pesData进行赋值后:
memcpy(pesData, psCurData, readLen);
3.内存释放:
if(pesData != NULL)
{
free(pesData);
pesData = NULL;
}
///报错:堆已损坏
===》》
原因:readLen>1024*50。在对pesData进行赋值时,越界写入了,导致堆被破坏
解决办法:①直接申请更大的内存,②当内存大于要申请的内存时,将原始内存释放掉,重新申请更大的内存
扫描二维码关注公众号,回复:
9891259 查看本文章