malloc與new方法動態建立陣列並釋放
using namespace std;
int main(){
//動態建立釋放一維陣列(new)
int *a;//基地址
int n=10;//陣列大小
a=new int[n];//建立
delete[] a;//釋放
//動態建立釋放二維陣列(new)
int **b;
int m=10;n=10;
b=new int*[m];
for(int i=0;i<m;i++)
b[i]=new int[n];
for(i=0;i<m;i++)
delete[] b[i];
delete[] b;
//動態建立釋放三維陣列(new)
int ***c;
i=10;int j=10,k=10;
c=new int**[i];
for(n=0;n<i;n++)
{
c[n]=new int*[j];
for(m=0;m<j;m++)
c[n][m]=new int[k];
}
for(m=0;m<i;m++)
{
for(n=0;n<j;n++)
delete[] c[m][n];
delete[] c[m];
}
delete[] c;
//動態建立釋放一維陣列(malloc)
int*d;
int z=10;
d=(int*)malloc(z*sizeof(int));
free(d);
//動態建立釋放二維陣列(malloc)
int**e;
int y=10;
e=(int**)malloc(z*sizeof(int*));
for(int q=0;q<z;q++)
e[q]=(int*)malloc(y*sizeof(int));
for( q=0;q<z;q++)
free(e[q]);
free(e);
//動態建立釋放三維陣列(malloc)
int ***r;
r=(int***)malloc(sizeof(int**)*10);
for(q=0;q<10;q++){
r[q]=(int**)malloc(9*sizeof(int*));
for(int p=0;p<9;p++)
r[q][p]=(int*)malloc(8*sizeof(int));
}
for(q=0;q<10;q++){
for(int p=0;p<9;p++)
free(r[q][p]);
free(r[q]);
}
free(r);
return 0;
}