c++ - 定义数组 C/C++

标签 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;
}

我知道如果我们从 stdin 读取大小变量 n,将我们(我们将使用的内存块)数组定义为指针更正确并使用 stdlib.harray = malloc(n * sizeof(int)),而不是将其贴标为 int array[n],但又是为什么?

最佳答案

它不是“更正确”或“不太正确”。它异或正确。特别是,这适用于 C,但不适用于 C++。

关于c++ - 定义数组 C/C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20162240/

相关文章:

ios - 在 Swift 中将字符串拆分为数组?

c - 结构数组读取函数将所有数组值更改为最新输入 - C

c++ - 使用 char 二进制会带来意想不到的结果

c - sscanf() 是否有通配符之类的东西

c - 无法将二进制转换为十进制

java - java中数组中的重复数字给出错误的输出

自定义异常类的 C++ 语法

c++ - 为什么 'control reaches end of non-void function' 只是一个警告?合法吗?

c++ - std::result_of 和 decltype 之间的区别

c - 破解库中的标准函数,然后调用 native 库函数