定义Array C/C++

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.harray = malloc(n * sizeof(int)),而不是decalring它int array[n],但是又为什么呢?

小智 6

它不是"更正确"或"不太正确".它要么 xor 正确.特别是,这适用于C,但不适用于C++.