問題タブ [variable-length-array]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - malloc の利点は何ですか?
一部のデータにメモリを割り当てる利点は何ですか。代わりに、それらの配列を使用できます。
お気に入り
通常の配列を使用することもできました。
malloc がどのように機能するのか、実際には何をしているのか正確にはわかりません。したがって、それらを説明することは私にとってより有益です。
上記のコードを に置き換えsizeof(int) * n
てn
、整数値を格納しようとすると、どのような問題が発生する可能性がありますか? また、変数に格納されている値を、メモリに割り当てられたスペースから直接出力する方法はありますか?たとえば、ここにありlis
ますか?
c - 配列を可変長で初期化できるようにする GCC
GCC は次の関数をコンパイルします
配列は一定の長さでしか初期化できないという印象を受けました。これはコンパイルすることになっていて、期待どおりに動作しますか?
c - 実行時に決定される配列サイズ
次のようなコードが表示されます。
これがどのように機能し、gcc
. 配列のサイズは静的であり、コンパイル時に決定されるはずですよね?
c++ - 可変長 std::array のような
私が通常使用する C++ コンパイラでは可変長配列 (実行時のサイズに応じた配列など) が許可されているためstd::array
、可変サイズのようなものがあるのだろうか? もちろんstd::vector
可変サイズですが、ヒープに割り当て、必要に応じて再割り当てします。
実行時にサイズが定義されたスタック割り当て配列が好きです。これを特徴とするテンプレートはありますstd
か? たぶんstd::vector
、固定最大サイズで使用していますか?
c - GCC は可変長配列をどのように実装しますか?
GCC は可変長配列 (VLA) をどのように実装しますか? そのような配列は、本質的に alloca によって返されるような、動的に割り当てられたストレージへのポインターですか?
私が考えることができる他の選択肢は、そのような配列が関数の最後の変数として割り当てられ、変数のオフセットがコンパイル時にわかるようにすることです。ただし、2 番目の VLA のオフセットは、コンパイル時に再びわかりません。
c++ - 「int サイズ = 10;」定数式を生成しますか?
次のコードは、gcc 4.8 および Clang 3.2 でコンパイルされます。
C++ 標準の 8.3.4/1 は、配列のサイズは整数定数式でなければならないと述べていますが、そうでsize
はないようです。これは両方のコンパイラのバグですか、それとも何か不足していますか?
最新の VC++ CTP は、次の興味深いメッセージでコードを拒否します。
size
興味深いのは、それがゼロであるとどのように考えているかです。しかし、少なくともコードは拒否されます。gcc と Clang は同じことをすべきではありませんか?