我们常常会在数学计算或者实际编程中遇到多维数组动态分配内存的问题,例如t[2][3]、t[3][4][5]、这种数组的分配问题,如果对C语言地址和指针不了解清楚,还真是一个头疼的问题,不要紧我们可以这样来管理这种数组的空间。
1.二维数组动态分配 t[m][n]
int **t;
t = new int*[m];
for(int i=0; i<m; i++)
{
t[i] = new int[n];
}
这样数组就分配好了;
如果要删除就得按这样顺序:
for(int i=0; i<m; i++)
{
delete []t[i];
}
delete []t;
2.三维数组动态分配 t[m][n][e]
int ***t;
t = new int**[m];
int i,j;
for(i=0; i<m; i++)
{
t[i] = new int*[n];
for(j=0; j<n; j++)
{
t[i][j] = new int[e];
}
}
删除就得这样:
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
delete []t[i][j];
}
delete []t[i];
}
delete []t;
从这里大概大家可以推测出例如象t[m1][m2][...][mn]维数组的分配和管理方法了,希望对大家有所帮助