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 に答える