問題タブ [dynamic-memory-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 に答える
272 参照

c++ - この動的割り当ては何をしますか?

今日、そのようなコードを C++ で記述してコンパイルできることを知りました。

これの目的は何ですか?もちろん動的なことは知ってnew int(5)いますが、ここで迷ってしまいます。手がかりはありますか?

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

c++ - STL (C++) を使用して再割り当てを回避する方法

この質問は、次のトピックから派生しています。

ベクトル予約 c++

タイプのデータ構造を使用していvector<vector<vector<double> > >ます。double項目 ( ) が追加される前に、これらの各ベクトル (外側のベクトルを除く) のサイズを知ることはできません。各「ディメンション」のアイテム数のおおよそのサイズ (上限) を取得できます。

vector<vector<vector<double> > >共有ポインタを使用したソリューションが最適な方法かもしれませんが、単に.reserve()十分なスペースを確保した (または他の方法で十分なメモリを割り当てた)ソリューションを試してみたいと思います。

A.reserve(500)[1000][10000] などの大きなサイズの「2D」ベクトルを保持するには (サイズが 500 であるか、サイズの上限であると仮定して) 十分でしょうか?

私の質問の主な理由はA、 の時点での内部のサイズを合理的に見積もる方法が見当たらないからです.reserve(500)

私の質問の例:

これにより、A の再割り当てが行われないことが保証されますか?

temp2.reserve(100000)とが作成時に追加された場合、temp1.reserve(1000)これにより、再割り当てがまったく発生しないことが保証されますか?

.reserve()上記では、保守的な呼び出しが原因でメモリが浪費される可能性があるという事実を無視してください。

よろしくお願いします!

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

c - GLibアトムとメモリチャンク

次のコードスニペットは、公式GNOME2開発者ガイドからのものです。

  • これは、すべてのアトムが42バイトであり、各「メモリチャンク」に42個の16アトムが含ま40000/16=2500れ、上記のコードを実行するとメモリチャンクが作成されることを意味しますか?

  • なぜここでgchar*を使用しているのですか?が実行されると、gpointer(void *)からgchar *への暗黙のキャストが行われdata[i] = g_mem_chunk_alloc(my_chunk);ますか?

  • 上記のステートメントが当てはまる場合、各gchar*は42バイトのメモリを指します。では、特定のアトムのすべてのバイトにアクセスするにはどうすればよいですか?data[7]+41使用可能なメモリロケーションになりますか?


  • コードをコンパイルしようとすると、gccは次のエラーメッセージを生成します。

    error: storage size of ‘my_chunk’ isn’t known どうしたの?

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

c++ - メモリエラーを削除

私は次のシナリオを持っています、

この関数は、まだ割り当てられていないときsetTestに削除しようとするため、呼び出されるとエラーをスローします。_testこれは、_testが0X0に設定されていないために発生しています。

誰かが私がこれを理解するのを手伝ってくれる?

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

dynamic-memory-allocation - ローカルおよび動的な割り当て

ツリーがあり、割り当てられたメモリを解放したいのですが、ポインタが動的に割り当てられていない変数を参照している可能性があるという問題に直面しているため、このポインタが動的変数を参照しているかどうかを知る方法

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

c++ - リンク リストの演習、何が間違っているのでしょうか?

こんにちは。動的メモリ割り当て、ポインター、クラス、および例外を含むリンク リストの演習を行っています。誰かがそれを批判して、スタイルと上に挙げたテーマの両方に関して、私がどこを間違えたのか、何を改善すべきだったのかを教えてくれませんか?

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

c++ - strdup の代替

名前を含む本の C++ クラスを書いています。

std::stringこの課題での使用は許可されていません。したがって、ここでstrdupは、コンストラクターでパラメーター名の値を nm にコピーするために使用しています。

を使用せずに同じ結果を達成する代わりに、代わりstrdupにキーワードを使用する方法はありnewますか?

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

c - Cで無制限の文字を読む方法

char*サイズを指定せずに無制限の文字を変数に読み込む方法は?

たとえば、従業員の住所を読みたいとしますが、これも複数行になる可能性があります。

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

operating-system - 動的に割り当てられたメモリはどこにありますか?

malloc()と操作がヒープからメモリを動的に割り当てることはわかってnewいますが、ヒープはどこにありますか?各プロセスには、動的割り当て用の名前空間に独自のプライベートヒープがありますか、それともOSにはすべてのプロセスで共有されるグローバルヒープがありますか。さらに、教科書を読んだところ、メモリリークが発生すると、次にコンピュータを再起動するまで、不足しているメモリを再利用することはできません。この論文は正しいですか?答えが「はい」の場合、どのように説明できますか?

お返事をありがとうございます。

よろしく。

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

c++ - C++の新しいメモリ割り当ての断片化

新しいアロケータの動作と、データが連続して配置されない理由を調べようとしていました。

私のコード:

だから私はこれをchar、int、ciで実行しました。ほとんどの割り当ては最後から固定長であり、使用可能なブロックから別のブロックへのジャンプが奇妙な場合がありました。

sizeof(char):1
平均ジャンプ:64バイト

sizeof(int):4
平均ジャンプ:16

sizeof(ci):8(intは4バイトの整列に配置する必要があります)
平均ジャンプ:9

アロケータがこのようにメモリを断片化している理由を誰かが説明できますか?また、charのジャンプがintよりもはるかに大きく、intとcharの両方を含む構造であるのはなぜですか。