读书人

动态二维数组释放有关问题请各位批评

发布时间: 2013-01-28 11:49:56 作者: rapoo

动态二维数组释放问题,请各位批评指正

#include <stdlib.h>

double** testfree()
{
double **t=(double**)malloc(sizeof(double*)*4);
for(int i=0;i<4;i++)
{
*(t+i)=(double*)malloc(sizeof(double*)*3);
}

for(int i=0;i<4;i++)//二维数组赋值
{
for(int j=0;j<3;j++)
{
t[i][j]=i*j;
}
}

return t;

}

int main()
{
double** t1=testfree();
//位置1 :释放二维数组
return 0;
}

调用的函数返回一个动态二维数组,这个数组分配给的内存,我应该在哪里释放呢,在位置1释放后,好像还报内存泄露,请各位指教!
[解决办法]

//仔细对照看
double** testfree()
{
double **t=(double**)malloc(sizeof(double*)*4);
for(int i=0;i<4;i++)
{
t[i]=(double*)malloc(sizeof(double)*3);
}
for(int i=0;i<4;i++)//二维数组赋值
{
for(int j=0;j<3;j++)
{
t[i][j]=i*j;
}
}

return t;

}

int main()
{
double** t1=testfree();
for (int i=0;i<4;++i)
{
free(t1[i]);
}
free(t1);
//位置1 :释放二维数组
return 0;
}

读书人网 >C++

热点推荐