引用在 运行 时间确定的大小数组

reference to an array of size determined at run-time

我试图找到它,但找不到。我知道我可以创建对数组变量的引用:

int x[10] = {}; int (&y)[10] = x;

但是,在编译时数组大小未知的情况下,如以下代码:

const int n = atoi( string ); //the string is read from a text file at run time.
int x[n] = {}; int (&y)[n] = x; //this generates a compiling error.

即使 int n 声明为 const,只要在编译时 n 未知,引用就是无效的。编译器会这样说:对类型 'int [n]' 的引用不能绑定到不相关类型 'int [n]' 的值。任何人都知道如何解决这个问题?提前致谢。

运行时长度数组是 C99 的一项功能,标准 C++ 中不存在。它们作为某些 C++ 编译器的扩展存在,但不能很好地与 C++ 功能混合,例如引用和模板。

你或许应该使用向量。

动态声明数组的特性不应该在 C++ 中使用。并非所有编译器都支持它。考虑改用 STL 容器。喜欢std::vector<int>