用malloc创建二维数组
时间: 2024-03-22 15:19:36 浏览: 57
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 **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 + j;
}
}
// 打印数组
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;
}
```
在这个示例中,我们首先从用户获取行数和列数,然后使用malloc分别为行和每一行中的列分配内存。然后,我们对数组进行填充和打印操作,最后释放分配的内存。请注意,在使用完二维数组后,一定要释放动态分配的内存以避免内存泄漏。
阅读全文