問題タブ [static-allocation]

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.

0 投票する
1 に答える
345 参照

c - c サイズを保持した 2 次元配列の静的初期化

1D 配列宣言と同様:

そのような2D配列を宣言する方法/可能であればアドバイスしてください。

ありがとう !

0 投票する
3 に答える
159 参照

c++ - 配列へのポインター要素のカウンターを維持する

複数のクラスを継承するインターフェースがあります。

クラス A、B、C のそれぞれについて、コンテナー クラス内の実際の型のサイズが異なる配列を作成しました。

さらに、「SomeInterface」へのポインターの配列があり、このような実際の配列のそれぞれへのポインターが必要です。

someInterface ポインターを介して実際の配列のサイズを取得することはできないため、someInterface 配列を使用する必要がある場合に問題が発生します。

この問題の良い解決策は何ですか? これを解決するには、本当に助けが必要です。また、動的割り当てを使用したくないため、Arduino に書き込みを行っているため、vector<> や malloc などを使用したソリューションはありません。

0 投票する
3 に答える
352 参照

c++ - メンバー関数内でこのポインターに削除を適用できますか?

動的に割り当てられたオブジェクトへのポインターを使用してメンバー関数が呼び出された場合、オブジェクトは削除されます。しかし、メンバー関数が静的に割り当てられたオブジェクトを使用して呼び出された場合、どうなりますか?

0 投票する
1 に答える
154 参照

c - 静的に割り当てられた配列へのポインタのインクリメント

これらの状況でポインターはどのくらいインクリメントされますか?またその理由は?

n 個の要素をmain持つ静的に割り当てられた配列と、 n行とM列を持つ静的に割り当てられた行列 ( 2D 配列) があり、関数fgを呼び出しているとしましょ(多くのコードとほとんどテキストなしで質問を投稿してください)。

0 投票する
3 に答える
981 参照

c - スタック上の変数は「静的に割り当てられていますか?」

私はこの記事を読んでいて、これを見ました:「この記事は、少なくとも基本的にGNU/Linuxシステムのメモリマップがどのように機能するか、特にスタックに静的に割り当てられたメモリと動的に割り当てられたメモリの違いをすでに知っていて理解していることを前提としています。ヒープ。"

スタックとヒープは動的に割り当てられる、つまり必要な場合にのみ割り当てられ、グローバル変数と関数内で「静的」として宣言された変数は静的に割り当てられる、つまり常に割り当てられると思っていたので、これは私を混乱させました。

たとえば、私が持っている場合

値 1 のみがスタックに置かれ、関数 f() が呼び出された場合にのみスタック ポインターがインクリメントされます。同様に、私が持っている場合

そのヒープメモリは、f() が呼び出された場合にのみ割り当てられます。ただし、「int x = 1;」がある場合 プログラムのグローバル セクションまたは「static int x = 1;」関数本体内では、このプログラムを実行するたびに、そのメモリが値 1 のデータ セクションに割り当てられます。

私はこれについて間違っていますか?

0 投票する
2 に答える
133 参照

c++ - サブアレイは線形に割り当てられることが保証されていますか?

この回答がreinterpret_cast規則に違反していることは知っていますが、サブ配列が線形に割り当てられることも前提としています。

これは保証されていないと信じていましたが、標準を検索すると、自信が揺らいでいます。次のように、2D 配列を静的に割り当てる場合:

すべての要素が線形に割り当てられると仮定してもよろしいですか? つまりfoo[0]、 がアドレス 0x00000042 にある場合、次のようになります。

  • foo[1]アドレス 0x00000052 にあります
  • foo[2]アドレス 0x00000062 にあります
  • foo[3]アドレス 0x00000072 にあります

これらのアドレスは 16 進数であり、はい、4 要素のサブ配列にスペースを提供していsizeof(int) == 4ます。それらはゼロで初期化される場合とされない場合があります。

0 投票する
2 に答える
2418 参照

arrays - 迅速に静的に割り当てられた配列を作成することは可能ですか?

インスタンス データとして固定数の値 (たとえば 16 個の浮動小数点数) を持つ構造体を迅速に作成したいと考えています。構造体のインスタンスのアドレスがインスタンス変数のアドレスになるように、この構造体がこれらの値をヒープに格納しないようにする必要があります。配列と同様に、これらの値が添え字を介して構造体に内部的にアクセスできることも要件です。

C では、この種のものを次のように定義するだけです。

このコードsizeof(Matrix4x4) == 64と同様に、変数を type として&myMatrix == &myMatrix.elements[0]; 定義すると、インスタンスはヒープに格納されたオブジェクトであるため、行列インスタンスには配列へのポインターのみが含まれます。elements[Float]Array<Float>

配列のような添字アクセスの利便性と効率性を放棄することなく、インスタンス変数の静的割り当てを迅速に取得する方法はありますか?