/*给二维数组(m*n)分配空间 */
char **a = (char **) malloc(m * sizeof(char * ));
for(int i = 0; i < m; i++)
a[i] = (char * )malloc(n * sizeof(char ));//a[i]即为*(a + i)
/* 释放*/
for(int i = 0; i < m; ++i)
free(a[i]);
free(a);
a = NULL;
/*为三维数组(m*n*p)分配空间*/
char ***a = (char ***) malloc(m * sizeof(char ** ));
for(int i = 0; i < m; ++i)
{
a[i] = (char **) malloc(n * sizeof(char * ));//a[i]即为*(a + i)
for(int j = 0; j < n; ++j)
a[i][j] = (char * )malloc(p * sizeof(char ));//a[i][j]即为*(*(a + i) + j)
}
/*释放*/
for(int i = 0; i < m; ++i)
{
for(j = 0; j < n; ++j)
free(a[i][j]);
free(a[i]);
}
free(a);
a = NULL;
二维指针与三维指针动态分配内存
最新推荐文章于 2023-05-14 16:55:23 发布