c语言,如何使用malloc给二维数组分配空间
时间: 2024-02-21 21:20:28 浏览: 133
在C语言中,可以使用`malloc()`函数来动态分配二维数组的内存空间。以下是一个示例代码来演示如何使用`malloc()`来分配二维数组的空间:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int rows, cols;
printf("Enter the number of rows: ");
scanf("%d", &rows);
printf("Enter the number of columns: ");
scanf("%d", &cols);
// 动态分配内存空间
int **matrix = (int **)malloc(rows * sizeof(int *));
for (int i = 0; i < rows; i++) {
matrix[i] = (int *)malloc(cols * sizeof(int));
}
// 使用动态分配的二维数组
printf("Enter matrix elements:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 打印二维数组
printf("Matrix elements:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
// 释放动态分配的内存空间
for (int i = 0; i < rows; i++) {
free(matrix[i]);
}
free(matrix);
return 0;
}
```
在上述代码中,我们首先使用`malloc()`函数为二维数组的行分配内存空间,然后在每一行中使用`malloc()`为列分配内存空间。然后,我们可以像访问静态数组一样使用动态分配的二维数组。最后,记得释放动态分配的内存空间,以避免内存泄漏。
阅读全文