首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-01-28 
动态二维数组释放问题,请各位批评指正#include stdlib.hdouble** testfree(){double **t(double**)mall

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

#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;
}

热点排行