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]