c ++默认数组大小覆盖命令行参数

时间:2012-10-23 14:01:32

标签: c++ arrays command-line-arguments

我在类似的路线上看到了一个问题 Specify Array from Command Line Argument

虽然我的问题有点不同。

我有多个文件实现相同大小的数组(NOC_SIZE)。我的程序有默认模式和用户模式(命令行参数)。我给了'unsigned int NOC_SIZE = 16;'在main函数启动之前在我的代码中行。在另一个头文件中,我声明了一个带有参数'static unsigned int NOC_SIZE;'的struct(noc_package)。此头文件包含在所有需要的文件中。

但是在我声明了一个数组的文件中(int arr [noc_package :: NOC_SIZE]),它给出了一个错误,说数组绑定不是整数。

有人可以建议解决这个问题吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

C ++不支持可变长度数组。

您最好使用std::vector代替:

std::vector<int> arr(noc_package::NOC_SIZE);