Questions tagged «variable-length»

12
为什么可变长度数组不是C ++标准的一部分?
在过去的几年中,我很少使用C。今天,当我阅读此问题时,遇到了一些我不熟悉的C语法。 显然,在C99中,以下语法有效: void foo(int n) { int values[n]; //Declare a variable length array } 这似乎是一个非常有用的功能。是否曾有关于将其添加到C ++标准的讨论,如果是,为什么将其省略? 一些潜在的原因: 编译器厂商难以实施 与标准的其他部分不兼容 可以使用其他C ++结构来模拟功能 C ++标准声明数组大小必须是一个常量表达式(8.3.4.1)。 是的,我当然知道在玩具示例中可以使用std::vector<int> values(m);,但这会从堆而不是堆栈中分配内存。如果我想要像这样的多维数组: void foo(int x, int y, int z) { int values[x][y][z]; // Declare a variable length array } 该vector版本变得很笨拙: void foo(int x, int y, int z) …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.