amosJi
当然可以

当然可以

[mw_shl_code=c,true]int** alloc_memory_for_2D_array(int m, int n){

int **ptr;

int i;

ptr = (int **)malloc(m*sizeof(int *));

for (i=0; i<m; i++){

ptr = (int *)malloc(n*sizeof(int));

}

return ptr;

}[/mw_shl_code]

例子:

[mw_shl_code=c,true]int **array_2d;

const int width = 10;

const int height = 20;

array_2d = alloc_memory_for_2D_array(height, width);

if (array_2d == NULL){

printf("Fail to allocate memory.");

}[/mw_shl_code]

一定不要忘记检查分配是否成功

最后还要有个函数负责free

[mw_shl_code=c,true]void free_memory_for_2D_array(int **ptr, int m){

int i;

for (i=0; i<m; i++){

if (ptr){

free(ptr);

ptr = NULL;

}

}

if (ptr){

free(ptr);

ptr = NULL;

}

}[/mw_shl_code]