C语言用malloc创造一个二维数组
时间: 2023-12-29 13:46:04 浏览: 138
可以使用以下代码创建一个动态二维数组:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int rows, cols, i, j;
int **arr;
printf("Enter the number of rows: ");
scanf("%d", &rows);
printf("Enter the number of columns: ");
scanf("%d", &cols);
// allocate memory for rows
arr = (int **)malloc(rows * sizeof(int *));
// allocate memory for columns of each row
for (i = 0; i < rows; i++) {
arr[i] = (int *)malloc(cols * sizeof(int));
}
// initialize array
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
arr[i][j] = i * cols + j;
}
}
// print array
for (i = 0; i < rows; i++) {
for (j = 0; j < cols; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
// free memory
for (i = 0; i < rows; i++) {
free(arr[i]);
}
free(arr);
return 0;
}
```
这个程序会提示用户输入行数和列数,然后使用malloc动态分配内存。最后,程序会初始化数组并打印它,最后释放内存。
阅读全文