問題タブ [struct]

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 投票する
3 に答える
3909 参照

c# - StructLayout を明示的に指定する必要があるのはいつですか?

私は C# からの DLL の呼び出しをいじっていて、独自の構造体を定義する必要があることに気づきました。多くの記事では、構造体の順次レイアウトを強制しています

それで、私はスイートに従いました、そして私のプログラムはうまくいきました。今、私がラインを取り出したとき、それはまだ機能しています。なぜそれが必要なのですか?

0 投票する
7 に答える
847 参照

c# - 16 バイトを超える構造体の最適解

私はそれを構造体として使用すると考えている型を持っています。

  • 単一の値を表します
  • 不変です

しかし問題は、int のフィールドが 6 つあることです。

では、このタイプにはどのソリューションを使用する必要がありますか?

  1. 構造体を使い続けますか?
  2. クラスチェンジ?
  3. または6つの整数をintの配列にパックして、フィールドが1つだけになるようにします

編集

6 つの整数フィールドを持つ構造体のサイズは 24 バイトで、これを渡すには巨大です。構造体の推奨サイズは 16 バイト以下です

0 投票する
8 に答える
37744 参照

c++ - メモリ内の C++ オブジェクトの構造と構造体

次のようなクラスがある場合

そして、次のような構造体

の記憶にある構造と 同様のexample_structものです。Example_Class

たとえば、次のようにすると

と(つまり、foo_class の x、y 値foo_struct.x = 8foo_struct.y = 9同じ値) ?

私が尋ねる理由は、オブジェクトを C コードと共有している C++ ライブラリ (変更したくない) があり、構造体を使用して C++ ライブラリからのオブジェクトを表現したいからです。私はオブジェクトの属性にのみ興味があります。

理想的な状況は、C と C++ コードの間の共通構造を Example_class でラップすることですが、使用中の C++ ライブラリを変更するのは簡単ではありません。

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

c - C構造体を解放するには?

与えられた構造体、例えば

次のコード (IPhone で実行されている Objective-C クラスのコンテキストで) が「解放されているアライメントされていないポインター」例外をスローするのはなぜですか?

NB私の究極の目標は、多くのベクトル数学関数を備えたCライブラリを使用することです。したがって、CとObjective-Cを混在させる実行可能な方法を見つける必要があります

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

iphone - Objective-Cでクラス変数として初期化されたときにC構造体が割り当てられるメモリの種類

次のことを考慮してください。


「マトリックス」変数が関連しなくなったとき(またはオブジェクト全体が解放されたとき)に、構造体で割り当てられた64バイトが適切に解放されるようにするにはどうすればよいですか?

0 投票する
4 に答える
2309 参照

c - fooが構造体である「struct foo*」と「foo*」の違いは?

Cでは、fooが構造体の場合、単に「foo」ではなく「struct foo」と書くことに違いはありますか?

例えば:

ありがとう/エリック

0 投票する
7 に答える
12979 参照

c++ - データのみのクラスと構造体?

このような場合、構造体よりもクラスを使用する利点はありますか? (注:変数のみを保持し、関数はありません)

対:


同様の質問:

0 投票する
10 に答える
40934 参照

c - Cで構造体をchar配列に変換する方法

ネットワーク経由で送信するために、構造体を char 配列に変換しようとしています。ただし、そうすると、char配列から奇妙な出力が得られます。

ax のさまざまな値の出力を次に示します (gcc を使用する X86 で):
127:
7f 00 00 00
127 0 0 0

128:
ffffff80 00 00 00
-128 0 0 0

255:
フフフフフ 00 00 00
-1 0 0 0

256:
00 01 00 00
0 1 0 0

127 と 256 の値は理解できますが、128 になると数値が変わるのはなぜですか? 80 00 00 00 128 0 0 0 ではない理由

変換プロセスで何かをするのを忘れていますか、それとも整数表現について何かを忘れていますか?

*注: これは小さなテスト プログラムです。実際のプログラムでは、構造体にもっと多くの変数名があり、リトルエンディアンに変換します。
*編集:フォーマット

0 投票する
8 に答える
23078 参照

c++ - 構造体の配列と new / delete

私はこのような構造体を持っています:

次のように、アイテムを「削除」したいとします。

そして、後で同じ場所に新しいアイテムを作成しました。

delete[]これを片付けるために電話する必要がありますか?items[]それとも、コンパイルする前に配列の境界がわかっているので、これは必要ではないでしょうか?

そのポインターを NULL に設定することは有効ですか、それとも削除を呼び出す必要がありますか?