問題タブ [dynamic-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 投票する
5 に答える
1415 参照

c - char配列を返すC関数を書く正しい方法は何ですか?

私は Java には精通していますが、C にはあまり詳しくありません。

Java では、何かを実行して文字列を返すメソッドがある場合、次のようになります。

C の同等の構文は機能せず、明らかに間違っています。

もちろん、私はできる:

これはうまくいくでしょう(私は思います!)が、私はめったにこの方法でコードを見ません(不必要にヒープを埋めているからですか?)

最も一般的に、私は見ます:

呼び出しステートメントは次のようになります。

関数自体の内部まで char 配列のサイズがわからない場合はどうすればよいですか? つまり、関数の外側で char 配列を宣言してから渡すことはできません。

そのようなシナリオに対処する正しい方法は何でしょうか?

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

c++ - C++ でポインターのサイズを動的に変更する

私は次の構造を持っています

次に、サイズm_DeviceInfo を 6 に変更し、前の 4 つの値も保持したいと考えました。

C ++でそれを行う方法は?

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

c - ここでSIGABRTを取得するのはなぜですか(動的割り当て)?

多分誰かが私を助けることができます。私のプロジェクトでは、動的割り当てのあるリンクリストを使用しています。理由はわかりませんが、うまくいきません:(

私がそれをコンパイルしようとしているとき、私はただ見ているだけです

中止

多分誰かが私がこの問題を抱えている理由を言うことができますか?ありがとう :)

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

c++ - C++でのオブジェクトの宣言と定義

重複の可能性:
タイプ名の後の括弧はnewと違いがありますか?

私は誰かがこのようなコンストラクターを使用しているのを見ました:

Foo *f= new Foo;との違いは何Foo *f= new Foo(); ですか?

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

c++ - 二次元配列参照で動的に生成された一次元配列を標準ライブラリだけで使うには?

標準ライブラリだけで二次元配列参照で動的に作成した一次元配列を使う方法は?</p>

の構造オーバーロードによってそれを行うことができoperator []ますか?

例: 1 次元配列を作成して行列を形成し、それを 2 次元配列を使用する形式で使用したい。

operator []「[]」が初めて出現したかどうかを証明するために、演算子のオーバーロードと変数テストを使用することを考えましたが、上記は

エラー: 「double[int]配列添え字の型が無効です」

そうすることは可能ですか?

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

c++ - 静的ベクトルを削除する必要がありますか?

私は c++ を学んでいますが、ベクトルとの混乱を経験しています。具体的には、静的ベクターが内部で動的配列を実装している場合、動的配列によって使用されているスタック メモリは、プログラムの終了時に解放されますか、それとも削除操作を使用するか、静的ベクターでデストラクタを呼び出す必要がありますか?

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

c++ - 削除を呼び出す前に動的に割り当てられたオブジェクトが削除されましたか?

プラグイン システムを実装しようとしていますが、いくつか問題があります。プラグイン DLL には、次のようなコードがあります。

MyPluginObject純粋な仮想 PluginObject クラスから派生します。ではPluginManager::RegisterPlugin()、プラグイン オブジェクトへのポインタは、後で使用するために保存されます。MyPluginObject内からの関数を正常に呼び出すことができますRegisterPlugin()が、一度InitPlugin戻ると、 に格納されたプラグイン オブジェクトを使用しようとすると、アクセス違反が発生しRegisterPlugin()ます。これを修正するにはどうすればよいですか?

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

c++ - (Visual C ++)ポインタを削除した後、動的割り当てメモリが有効なポインタではありません

プログラムがあります。[ダウンロード]ボタンをクリックすると、プログラムは新しいスレッドを作成してWebページをダウンロードし、動的割り当てchar*変数に保存します。

しかし今、私は「ダウンロード」をクリックします、プログラムは以下の情報を示します:

問題は、ヒープの割り当てまたは割り当て解除の問題に関連しているようです。

download働き :

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

c++ - C++のメモリプールに関する問い合わせ

単純なロジックに従うメモリプールの実装を作成することは可能ですか?

1-nバイト相当のメモリプールを割り当てます。

2-変更されたnew();を使用します。メモリを割り当てない関数/演算子は、メモリプールの先頭へのポインタのみを取得します。このようにして、オブジェクトはオーバーヘッドなしで動的に作成されます。

3-メモリプールが少なくなると、残りのメモリプールの割り当てが解除され、新しいメモリプールが割り当てられます

4-最初のメモリプールで作成されたオブジェクトは、サイズに基づいてメモリを取得するために残されます。最初のプールに割り当てられたものと、プールが少なくなったときに返されるものの違いは、オブジェクトが削除されると復元されます。

私の心配は主に、割り当てられたよりも小さいメモリプールを削除する方法がわからないという事実です。メモリプールオブジェクトの最後に残っているものの他に、メモリプールのOSヘッダーもあることに注意してください。これは、プールに割り当てられた最初のオブジェクトの前にあります。メモリがリークされていないこと、余分なメモリプールを削除しても、そこに割り当てられているオブジェクトが削除されないこと、メモリプールフラグメントのヘッダーが安全に削除されることを確認するには、どのようなアプローチが必要ですか。

ありがとう!

編集:意図は、メモリがメモリプールによって割り当てられ、オブジェクトによって解放されることであることに注意してください。オブジェクトは、ライフタイムが異なる場合があります。これが可能であれば...

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

c++ - c++で動的に割り当てられたグローバル構造体

初期サイズを持たない構造体の配列を使用しようとすると問題が発生します。どうすればよいですか?これは私の構造です:

私のプログラムでは、次のように構造体配列のサイズを割り当てています。

問題は、この構造体を他のファイルでどのように使用するかです。ヘッダーファイルを作成して入れました

しかし、次のエラーが発生します。

グローバル変数を使用するべきではないことはわかっていますが、最初にこれをテストしたいと思います。助けてくれてありがとう。