問題タブ [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++ - 文書化されていない GCC 拡張機能: 構造体の VLA
Clang のドキュメントを読んでいるときに、次の興味深い情報を見つけました: [1]
clang は、構造体で可変長配列を許可する gcc 拡張機能をサポートしていません。これにはいくつかの理由があります。1 つは実装が難しい、2 つは拡張機能が完全に文書化されていない、3 つは拡張機能がめったに使用されないように見えるということです。clang は柔軟な配列メンバー (構造体の末尾にゼロまたは未指定のサイズを持つ配列) をサポートしていることに注意してください。
この拡張機能はどのように使用できますか? 私の理解では、コンストラクター内で alloca を使用すると、呼び出し元の関数の最後にスタック ポインターが復元されます。この場合、それはコンストラクターであり、囲んでいる構造体の最後ではありません。
助けてくれてありがとう!
c++ - C99スタイルのVLAにはどのような技術的な欠点がありますか?
多くの人から、C99で導入された可変長配列はひどいという話を聞きました。IRCの何人かの人は1分前に言った«C++がVLAを取得するとは思わない、strousoupはそれらについていくつかの非常に否定的なコメントをした»。
それらの人々がVLAを嫌う理由は何ですか?
c - 柔軟な配列メンバーを持つ定数構造
次の 2 つの構造を検討してください。
理想的には、次のようにコンテナを初期化できます。
私のコンパイラは言う:「エラー:初期化子が多すぎます」
c - C99で実行時に可変長配列のサイズを計算するにはどうすればよいですか?
C89 では、配列の長さはコンパイル時に認識されます。しかし、可変長配列を使用する C99 では、実行前に配列の長さが不明な場合があります。
では、どのように計算されるのでしょうか。
また、動的に割り当てられた配列の長さを同じ方法で計算できないのはなぜですか?
c++ - C / C ++でグローバル2D配列を宣言することは可能ですか?
global
次のように2次元配列を宣言しようとするとC++
:
エラーが発生しますerror: variable-size type declared outside of any function
c++ - CおよびC++の可変長配列(VLA)
VLAとその動作について、明確にする必要のあるいくつかの概念があります。
C99以降のAFIKでは、VLAをローカルスコープに宣言することができます。
ただし、グローバルスコープでは禁止されています。
const
上記のコードは、修飾子がコンパイル時の値を作成しないため、C99でVLAを宣言します。C ++ではglobal_size
コンパイル時の値であるため、global_array
VLAにはなりません。
私が知る必要があるのは:私の推論は正しいですか?私が説明した動作は正しいですか?
また、知りたいのですが、グローバルスコープのVLAが許可されないのはなぜですか?CとC++の両方で禁止されていますか?グローバルスコープとローカルスコープへの配列の動作が異なる理由は何ですか?
database - タイプ可変長配列Postgresqlの列のデフォルト値
私の質問は、可変長配列列の特定のインデックスにデフォルト値を設定するにはどうすればよいですか。いずれかの位置の値をデフォルトの文字列「false」に設定しようとしています。
理由は、位置の値が「true」であるアイテムをフィルタリングするためにクエリにwhere句を設定できるようにしたい(特定のアイテムを手動でtrueに設定している)が、残りのデータをデフォルトでfalseに設定しないようにするためです。値私のクエリはデータをフェッチしていません。
これが紛らわしい場合は私に知らせてください、そして私はそれを片付けようとします..事前に感謝します
class - クラスで可変長配列を宣言する
皆さん。ここに私のコードがあります:
与えられたエラー: 非静的データ メンバーの無効な使用Solar_system::planet_no
どんな助けでも大歓迎です。
c - 構造体の途中にある可変長配列-このCコードがgccに有効である理由
gcc 4.6によって有効なC(C99、C11)として扱われるVLA(可変長配列)を使用する奇妙なコードがいくつかあります。
このコードは警告なしにコンパイルされました:
同じ-std=c1x
:
ただし、これはIntelCコンパイラまたはClang+LLVMでは機能しません。
それで:
- これがGCCによって有効であると見なされるのはなぜですか?
- GCCの拡張である場合、どこに記述されていますか?
- C99およびC11ISO規格で有効ですか?
c - CでのScanf配列の制限?
Cで少しエラーがあります:
エラー:式は定数値でなければなりません
私は知っています、それは私の限界が一定の値でなければならないことを意味します、しかし私がこの状況にあるときどうやってそれを解決することができますか?
ありがとう。
編集:
みんな、別の問題、私がスパムした場合は申し訳ありません。
エラー4エラーc2109添え字には配列またはポインタ型が必要です