問題タブ [placement-new]

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

c++ - なぜ新しい配置を使用する必要があるのですか?

どうやら、placement new事前に割り当てられたメモリに新しいオブジェクトを作成するので、時間がかからないということですか?古い通常のを使用して割り当てるよりも高速であるように見えnewます。それなら、これがとても便利で速いなら、placement newいつも使ってみませんか?

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

c++ - 配置 - 新しいアドレスと生のメモリ アドレス

配置 new の結果は常に、配置 new に提供するメモリ ポインターと同じように見えます。GCCでは、これは仮想関数を持つクラスにも当てはまるようです。たとえば...

このプログラムの出力は (注: 64 ビット Linux)...

C++ は mem と ptr が同一であることを保証しますか、それとも GCC の偶然の一致ですか? 大規模な移植可能なプログラムでは、mem と ptr の両方を保存する必要がありますか、それともどちらか一方だけを保存して必要に応じてキャストできますか?

質問を少し明確にするために、メモリ アロケーターは、割り当てられたブロックのサイズを、ポイントされたメモリ ブロックの前の単語に入れることがあることを知っています。C++ コンパイラは、そのようなトリックを使用して、オブジェクト ポインタが指すメモリ ブロックの前の単語に VMT ポインタを配置することを許可されていますか? この場合、mem と ptr は異なります。

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

c++ - 動的サイズ設定を取得するための新しい配置

この質問に基づく:可変サイズタイプの割り当て

次は動作しますか?

パケットはPOD構造体であり、最後のメンバーは配列です。動的なサイズの配列を許可するというアイデア(何年も前にCで行っていたように)

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

c++ - 他のコンストラクター内でコピー コンストラクターを呼び出す

出力に空の文字列が表示されます。C++ 標準は、そのような動作について何と言っていますか?

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

c++ - C ++で新しい配置はどのように機能しますか?

重複の可能性:
C++ の「placement new」

プレースメント new 演算子について学び、独自のメモリ マネージャーを作成してみました。
メモリのテンプレート基本クラスのコードは次のとおりです

今、私は上記のクラスから myclass を継承し、別のヘッダーファイルで、以下のようなものです

さて、私のメインでは、次の方法で myclass のオブジェクトを作成しようとしています

質問 ::
1. main を実行すると、予想どおり、obj と pMyClass1 のベース アドレスが同じでした。ただし、ポインター pAddress を返すだけで、新しい配置はどのように機能しますか?

  1. 私のobj [10]はスタックにありますが、デストラクタが呼び出されていません。

何か案は ?

アトゥル

PS :: Memory_Base に new[] と delete[] を実装する必要があります。

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

c++ - 連続メモリの新しい配置

連続メモリに新しい配置を使用する際にいくつかの問題が発生しています。他に方法がある場合は、ガイドしてください。
私のコードを参照してください。

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

c++ - 新しい配置から割り当てられたメモリを解放する

次のコードを検討してください。

出力:

ここでは、すでにスタックに割り当てられているメモリを動的に要求しています。完了したら、デストラクタを明示的に呼び出す必要があることを読みました。しかし、スタックに割り当てられたメモリに対してdeleteを呼び出そうとすると、デストラクタが呼び出されます。これは、デストラクタが呼び出された後にスタック上のメモリが解放されることを意味しますか?

以前にヒープに割り当てられたメモリを動的に要求する場合、その場合はdeleteを呼び出す必要がありますが、deleteは実際にスタック上のメモリを解放しますか?

0 投票する
5 に答える
274 参照

c++ - 用途 : C++ で所定の位置にオブジェクトを構築する

C ++で所定の場所にあるオブジェクトの構築の使用は何ですか?

次のコードは、所定の場所での建設を示しています-

これにより、最終的に、所定の「アドレス」に MyClass のオブジェクトが作成されます。(アドレスが指すストレージがMyClass オブジェクトを保持するのに十分な大きさであると仮定します)。

このようなメモリ内の所定の場所にオブジェクトを作成する方法を知りたいです。

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

c++ - C ++での下の文の意味は何ですか

重複の可能性:
C++ の「placement new」

以下のコードでは、3行目は何を表しているのですか?それは型キャストの方法ですか? または何

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

memory-management - あらかじめ決められた場所にどのようにメモリを割り当てますか?

固定された場所でnewを使用してメモリを割り当てるにはどうすればよいですか?私の本はこれを行うように言っています:

ここで、newはbufのアドレスにメモリを割り当て、(10,20)は渡される値です。しかし、サンプルとは何ですか?それはアドレスですか、それともデータ型ですか?