动态申请内存有关问题
动态申请内存问题
请教各位,若一个调用函数体内,动态申请了内存,在main函数中调用此函数返回一个指针后,调用函数内的动态内存如何释放?譬如下面的程序
请教各位,若一个调用函数体内,动态申请了内存,在main函数中调用此函数返回一个指针后,调用函数内的动态内存如何释放?譬如下面的程序
Complex*** hanshu(Complex ***p)
{
Complex ***Z=(Complex ***)malloc((Nx1+1) * sizeof(Complex**));
if(Z== NULL)
{
printf("Malloc False");
}
for(int i =0; i< Nx1+1; i++)
{
Z[i] = (Complex **)malloc((Ny1+1) * sizeof(Complex*));
if(Z[i] == NULL)
{
printf("Malloc False");
}
for( int j = 0; j< Ny1+1; j++)
{
Z[i][j]=(Complex *)malloc((Nz1+1) * sizeof(Complex));
if(Z[i][j] == NULL)
{
printf("Malloc False");
}
}
}
for(int i=0; i<Nx1+1; i++)
{
for(int j=0; j<Ny1+1; j++)
{
for(int k=0;k<Nz1+1;k++)
{
Z[i][j][k]=p[i][j][k];
}
}
}
return Z;
}
void main()
{
Complex co (0,0);
Complex ***A=(Complex ***)malloc((Nx1+1) * sizeof(Complex**));
if(A== NULL)
{
printf("Malloc False");
}
for(int i =0; i< Nx1+1; i++)
{
A[i] = (Complex **)malloc((Ny1+1) * sizeof(Complex*));
if(A[i] == NULL)
{
printf("Malloc False");
}
for( int j = 0; j< Ny1+1; j++)
{
A[i][j]=(Complex *)malloc((Nz1+1) * sizeof(Complex));
if(A[i][j] == NULL)
{
printf("Malloc False");
}
}
}
Complex ***B=(Complex ***)malloc((Nx1+1) * sizeof(Complex**));
if(B== NULL)
{
printf("Malloc False");
}
for(int i =0; i< Nx1+1; i++)
{
B[i] = (Complex **)malloc((Ny1+1) * sizeof(Complex*));
if(Z[i] == NULL)
{
printf("Malloc False");
}
for( int j = 0; j< Ny1+1; j++)
{
B[i][j]=(Complex *)malloc((Nz1+1) * sizeof(Complex));
if(B[i][j] == NULL)
{
printf("Malloc False");
}
}
}
for(int i=0; i<Nx1+1; i++)
{
for(int j=0; j<Ny1+1; j++)
{