malloc申请二位数组
时间: 2023-09-22 20:10:07 浏览: 90
C语言动态分配二维数组
您可以使用malloc函数申请二维数组。下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int rows, cols;
printf("请输入二维数组的行数和列数:");
scanf("%d %d", &rows, &cols);
// 使用malloc申请二维数组内存空间
int** arr = (int**)malloc(rows * sizeof(int*));
for (int i = 0; i < rows; i++) {
arr[i] = (int*)malloc(cols * sizeof(int));
}
// 初始化二维数组
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
arr[i][j] = i * cols + j;
}
}
// 打印二维数组
printf("二维数组元素:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
// 释放二维数组内存空间
for (int i = 0; i < rows; i++) {
free(arr[i]);
}
free(arr);
return 0;
}
```
上述代码首先通过`scanf`函数获取用户输入的二维数组的行数和列数。然后使用`malloc`函数申请二维数组所需的内存空间,其中使用了两次`malloc`,分别申请了行指针数组和列数组的内存空间。接下来,可以对二维数组进行初始化和访问操作。最后,记得使用`free`函数释放二维数组所占用的内存空间。
阅读全文