这两个数组定义有什么区别,哪个更正确,为什么?
#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;
}
我知道如果我们从 stdin
读取大小变量 n
,将我们(我们将使用的内存块)数组定义为指针更正确并使用 stdlib.h
和 array = malloc(n * sizeof(int))
,而不是将其贴标为 int array[n]
,但又是为什么?
最佳答案
它不是“更正确”或“不太正确”。它是异或不正确。特别是,这适用于 C,但不适用于 C++。
关于c++ - 定义数组 C/C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20162240/