您的位置:首页 > 编程语言 > C语言/C++

C、C++二维数组动态分配内存

2016-01-11 10:32 453 查看
C++动态数组分配

int **arr;
int m, n;


//非连续分配
arr = new int*[m];
for(int i = 0; i < m; i ++)
arr[i] = new int
;
//释放
for(int i = 0; i < m; i ++)
delete[] arr[i];
delete[] arr;


//连续分配内存
arr = new int*[m];
arr[0] = new int[m * n];
for(int i = 1; i < m; i ++)
arr[i] = arr[i-1] + n;
//释放
delete[] arr[0];
delete[] arr;


C动态数组分配

//非连续
arr = (int **)malloc(sizeof(int *) * m);
for(int i = 0; i < m; i ++)
arr[i] = (int *)malloc(sizeof(int) * n);
//释放
for(int i = 0; i < m; i ++)
free(arr[i]);
free(arr);


//连续
arr = (int **)malloc(sizeof(int *) * m);
arr[0] = (int *)malloc(sizeof(int) * m * n);
for(int i = 1; i < m; i ++)
arr[i] = arr[i-1] + n;
//释放
free(arr[0]);
free(arr);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: