malloc()
malloc()和free()成对出现,分配内存地址后,进行安全释放。其释放函数可写为:
SafeFree(p){
if((p))
free(p);
(p) = NULL;
}
该函数可能出现错误信息为:
double free or corruption
错误原因可能有:
- 同一地址两次释放内存
- 使用非法的内存地址(数组越界,或内存地址修改等)
如:
MUInt8* imageData1 = (MUInt8*)malloc(Height1*Width1*3);
imageData1 = img1.Data;
SafeFree(imageData1);
该段代码出现 double free or corruption 错误。