使用动态存储分配定义一维数组与二维数组
时间: 2023-11-24 09:07:17 浏览: 79
动态定义一维、二维、三维数组
使用动态存储分配定义一维数组时,可以使用malloc函数来在堆区分配内存空间。比如,可以通过以下代码定义一个包含5个int型元素的一维数组:
```c
int *num;
num = (int *)malloc(5 * sizeof(int));
```
其中,`malloc(5 * sizeof(int))`表示在堆区分配了5个int型的内存空间,并将该内存空间的首元素地址返回给指针`num`。
使用动态存储分配定义二维数组时,可以使用指针数组的方式来实现。比如,可以通过以下代码定义一个包含3行4列的二维数组:
```c
int **arr;
int i, j;
arr = (int **)malloc(3 * sizeof(int *));
for(i = 0; i < 3; i++){
arr[i = (int *)malloc(4 * sizeof(int));
}
```
其中,`malloc(3 * sizeof(int *))`表示在堆区分配了3个指针的内存空间,并将每个指针指向的地址分别指向另外一个堆区分配的内存空间,即为每行分配了4个int型的内存空间。通过这种方式,就可以实现动态存储分配的二维数组。
阅读全文