内存泄漏博士 - C - malloc 3d数组

时间:2017-06-21 23:02:53

标签: c memory-leaks dr-memory

我正在使用Dr. Memory来调试在某些情况下崩溃的遗留代码。

博士。内存说分配期间存在内存泄漏:

float   ***in_vol=NULL;
in_vol=(float ***) malloc(inimsize[12]*sizeof(float **)); // here **
                   // inimsize is array of ints
 for (i0=0;i0<inimsize[12];i0++) {
   in_vol[i0] =(float **) malloc(inimsize[0]*sizeof(float *));

   for (i1=0;i1<inimsize[0];i1++)  {
      in_vol[i0][i1]=(float *) malloc(inimsize[1]*sizeof(float ));
   }
 }

后来释放了内存:

for (i0=0;i0<in_header[0][12];i0++) {
  for (i1=0;i1<in_header[0][0];i1++)  {
    free( (float*) *(*(in_vol+i0)+i1) );

  }
    free( (float*)  *(in_vol+i0));
}

free( (float*)in_vol); 
in_vol=NULL;

我没有看到问题,但是,在某些测试中我的内存不足。

分配和释放是否正确?

0 个答案:

没有答案