8

我想知道如何管理可变长度数组(为了拥有可变长度数组,堆栈中保留了哪些额外的变量或数据结构)。

非常感谢。

4

3 回答 3

4

它只是一个动态大小的数组(依赖于实现,但最常见于堆栈上)。这很像alloca过去,除了sizeof将返回数组的实际大小,这意味着数组的大小也必须存储在某个地方(也取决于实现,但也可能在堆栈上)。

于 2010-05-03T15:54:18.007 回答
1

可变长度数组的大小是在运行时而不是编译时确定的。
它的管理方式取决于编译器。
例如,GCC 在堆栈上分配内存。
但没有特殊的结构。它只是一个普通数组,其大小在运行时是已知的。

于 2010-05-03T15:56:52.250 回答
-2

或者,您可以使用一些容器,例如 java 中的 ArrayList 或 c/c++ 中的 vector

于 2010-05-04T06:03:31.460 回答