問題タブ [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.
c - c サイズを保持した 2 次元配列の静的初期化
1D 配列宣言と同様:
そのような2D配列を宣言する方法/可能であればアドバイスしてください。
ありがとう !
c++ - 配列へのポインター要素のカウンターを維持する
複数のクラスを継承するインターフェースがあります。
クラス A、B、C のそれぞれについて、コンテナー クラス内の実際の型のサイズが異なる配列を作成しました。
さらに、「SomeInterface」へのポインターの配列があり、このような実際の配列のそれぞれへのポインターが必要です。
someInterface ポインターを介して実際の配列のサイズを取得することはできないため、someInterface 配列を使用する必要がある場合に問題が発生します。
この問題の良い解決策は何ですか? これを解決するには、本当に助けが必要です。また、動的割り当てを使用したくないため、Arduino に書き込みを行っているため、vector<> や malloc などを使用したソリューションはありません。
c++ - メンバー関数内でこのポインターに削除を適用できますか?
動的に割り当てられたオブジェクトへのポインターを使用してメンバー関数が呼び出された場合、オブジェクトは削除されます。しかし、メンバー関数が静的に割り当てられたオブジェクトを使用して呼び出された場合、どうなりますか?
c - 静的に割り当てられた配列へのポインタのインクリメント
これらの状況でポインターはどのくらいインクリメントされますか?またその理由は?
n 個の要素をmain
持つ静的に割り当てられた配列と、 n行とM列を持つ静的に割り当てられた行列 ( 2D 配列) があり、関数fとgを呼び出しているとしましょう(多くのコードとほとんどテキストなしで質問を投稿してください)。
c - スタック上の変数は「静的に割り当てられていますか?」
私はこの記事を読んでいて、これを見ました:「この記事は、少なくとも基本的にGNU/Linuxシステムのメモリマップがどのように機能するか、特にスタックに静的に割り当てられたメモリと動的に割り当てられたメモリの違いをすでに知っていて理解していることを前提としています。ヒープ。"
スタックとヒープは動的に割り当てられる、つまり必要な場合にのみ割り当てられ、グローバル変数と関数内で「静的」として宣言された変数は静的に割り当てられる、つまり常に割り当てられると思っていたので、これは私を混乱させました。
たとえば、私が持っている場合
値 1 のみがスタックに置かれ、関数 f() が呼び出された場合にのみスタック ポインターがインクリメントされます。同様に、私が持っている場合
そのヒープメモリは、f() が呼び出された場合にのみ割り当てられます。ただし、「int x = 1;」がある場合 プログラムのグローバル セクションまたは「static int x = 1;」関数本体内では、このプログラムを実行するたびに、そのメモリが値 1 のデータ セクションに割り当てられます。
私はこれについて間違っていますか?
c++ - サブアレイは線形に割り当てられることが保証されていますか?
この回答がreinterpret_cast
規則に違反していることは知っていますが、サブ配列が線形に割り当てられることも前提としています。
これは保証されていないと信じていましたが、標準を検索すると、自信が揺らいでいます。次のように、2D 配列を静的に割り当てる場合:
すべての要素が線形に割り当てられると仮定してもよろしいですか? つまりfoo[0]
、 がアドレス 0x00000042 にある場合、次のようになります。
foo[1]
アドレス 0x00000052 にありますfoo[2]
アドレス 0x00000062 にありますfoo[3]
アドレス 0x00000072 にあります
これらのアドレスは 16 進数であり、はい、4 要素のサブ配列にスペースを提供していsizeof(int) == 4
ます。それらはゼロで初期化される場合とされない場合があります。
arrays - 迅速に静的に割り当てられた配列を作成することは可能ですか?
インスタンス データとして固定数の値 (たとえば 16 個の浮動小数点数) を持つ構造体を迅速に作成したいと考えています。構造体のインスタンスのアドレスがインスタンス変数のアドレスになるように、この構造体がこれらの値をヒープに格納しないようにする必要があります。配列と同様に、これらの値が添え字を介して構造体に内部的にアクセスできることも要件です。
C では、この種のものを次のように定義するだけです。
このコードsizeof(Matrix4x4) == 64
と同様に、変数を type として&myMatrix == &myMatrix.elements[0];
定義すると、インスタンスはヒープに格納されたオブジェクトであるため、行列インスタンスには配列へのポインターのみが含まれます。elements
[Float]
Array<Float>
配列のような添字アクセスの利便性と効率性を放棄することなく、インスタンス変数の静的割り当てを迅速に取得する方法はありますか?