Dra*_*scu 0 c c++ arrays c-preprocessor
这两个数组定义有什么区别,哪一个更正确?为什么?
#include <stdio.h>
#define SIZE 20
int main() {
// definition method 1:
int a[SIZE];
// end definition method 1.
// defintion method 2:
int n;
scanf("%d", &n);
int b[n];
// end definition method 2.
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我知道,如果我们看大小,变量n
,从stdin
,这是更正确的定义我们(我们将使用的内存块)数组的指针,并使用stdlib.h
和array = malloc(n * sizeof(int))
,而不是decalring它int array[n]
,但是又为什么呢?