Dword_align

来源:互联网 发布:java线程池代码 编辑:程序博客网 时间:2024/06/05 18:07

程序运行时,突然停在Dword_align,然后跳出访问地址冲突的对话框,出现此问题的原因是:内存泄露,导致malloc失败,之后访问malloc分配的地址,自然出现地址冲突的错误。可用如下代码检测malloc是否成功执行:

int*imgData;try{imgData=(int*)malloc(sizeof(int)*P);if(imgData==0)throw "imgData Memory allocation failure!";}catch (char *str){cout << "Exception raised: " << str <<endl;}
而内存泄露的原因,多是自己分配了内存,却忘记了释放。尤其是对于结构体里边的指针,千万小心!

比如,声明了如下结构体

 struct weakr { int* loc; float* detaSb; };

然后生成了一个结构体数组weakr weaks[K],那么在不用该数组的时候一定要释放数组中每个元素的指针

 for(int i=0;i<K;i++){free(strong[i].loc);free(strong[i].detaSb);                strong[i].loc=NULL;                strong[i].detaSb=NULL;  }
这个内存泄露不注意很难看出,特此记录下来,以提醒自己!

0 0
原创粉丝点击