c++ - 引用在运行时确定大小的数组

标签 c++ arrays reference variable-length-array

我想找这个,但找不到。我知道我可以创建对数组变量的引用:

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]”的引用不能绑定(bind)到不相关类型“int [n]”的值。任何人都知道如何解决这个问题?提前致谢。

最佳答案

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

您可能应该使用 vector 。

关于c++ - 引用在运行时确定大小的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32218011/

相关文章:

C++ 指向一个对象然后移动它的内存位置

c++ - 有不同的异常类

c - 如何将结构添加到结构数组的末尾?

ruby-on-rails - 收集数组 Ruby 中每个元素的 0 索引

c++ - 单个函数指针能否指向多个类的成员函数

c++ - 使用 VBO 和 VAO 是否会提高具有共享内存的集成芯片的性能

c - 变量 在 C 中使用 Fgets 和 char 数组

reference - iOS7创建和使用SKTextureAtlas的正确方法是什么?

c# - 包含引用的程序集,而不必将应用程序保留在与引用的程序集相同的目录中

c++ - 在 C++ 中创建对常量变量的引用