所以我正在学习如何用 C 语言编程,并开始学习动态内存分配。我所知道的是,您的程序并非总是知道它在运行时需要多少内存。
我有这个代码:
#include <stdio.h>
int main() {
int r, c, i, j;
printf("Rows?\n");
scanf("%d", &r);
printf("Columns?\n");
scanf("%d", &c);
int array[r][c];
for (i = 0; i < r; i++)
for (j = 0; j < c; j++)
array[i][j] = rand() % 100 + 1;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
因此,如果我想创建一个二维数组,我只需声明一个并将数字放在括号中即可。但在这段代码中,我询问用户他们想要多少行和列,然后用这些变量声明一个数组,然后用随机整数填充行和列。
所以我的问题是:为什么我不必使用像malloc这里这样的东西?我的代码不知道在运行时要放入多少行和列,那么为什么我可以使用当前代码访问该数组?