c中使用malloc动态申请二维数组
2013-06-20 13:40
295 查看
前言
今天写代码的时候,想要动态的申请一个二维数组空间,思索了一段时间才写出来,这里记录一下吧,以后就不至于再浪费时间了。下面以申请int型数组作为例子:申请一维数组
一维数组的数组名可以看成数组起始元素的首地址,因此我定义一个int *arr的指针,分配n个大小的int型空间,写法如下:#include <stdio.h> #include <stdlib.h> int main(void) { int n, *arr; while (scanf("%d", &n) != EOF) { arr = (int *)malloc(sizeof(int) * n); } return 0; }
申请二维数组
二维数组的数组名是其所有一维数组的首地址,因为二维数组的数组名是指针的指针,因为我定义一个row行column列的二维数组,写法如下:#include <stdio.h> #include <stdlib.h> int main(void) { int i, row, column, **arr; while (scanf("%d %d", &row, &column) != EOF) { arr = (int **)malloc(sizeof(int *) * row); // 分配所有行的首地址 for (i = 0; i < row; i ++) { // 按行分配每一列 arr[i] = (int *)malloc(sizeof(int) * column); } // 释放开辟的二维数组空间 for (int i = 0; i < row; ++i) { free(*(arr + i)); } } return 0; }
后记
回来看看自己过去的文章,还是会有有些收获。感谢评论提出的free内存泄露的问题,已经改正。相关文章推荐
- c中使用malloc动态申请二维数组
- 用malloc动态申请一个二维数组的三种方法
- malloc动态申请二维数组
- 二维数组动态申请 malloc
- 动态二维数组的申请、赋初值、使用、释放空间
- 用malloc动态申请一个二维数组的三种方法
- 动态申请二维数组做矩阵乘法
- 二维数组的动态申请
- 动态申请和释放一个二维数组
- 动态申请二维数组
- C语言动态申请二维数组
- C++ 中动态二维数组的申请
- c/c++中动态申请二维数组的方式
- 数据结构动态申请二维数组
- C语言:使用realloc函数对malloc或者calloc动态分配的内存大小进行扩展
- c++ 使用new动态的创建指定大小的二维数组
- C语言中二维数组的动态申请与释放
- C++动态申请二维数组
- C语言动态申请二维数组
- android 6.0 动态申请权限后 相机的使用核心方法