問題タブ [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.
c++ - この動的割り当ては何をしますか?
今日、そのようなコードを C++ で記述してコンパイルできることを知りました。
これの目的は何ですか?もちろん動的なことは知ってnew int(5)
いますが、ここで迷ってしまいます。手がかりはありますか?
c++ - STL (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()
上記では、保守的な呼び出しが原因でメモリが浪費される可能性があるという事実を無視してください。
よろしくお願いします!
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
どうしたの?
c++ - メモリエラーを削除
私は次のシナリオを持っています、
この関数は、まだ割り当てられていないときsetTest
に削除しようとするため、呼び出されるとエラーをスローします。_test
これは、_test
が0X0に設定されていないために発生しています。
誰かが私がこれを理解するのを手伝ってくれる?
dynamic-memory-allocation - ローカルおよび動的な割り当て
ツリーがあり、割り当てられたメモリを解放したいのですが、ポインタが動的に割り当てられていない変数を参照している可能性があるという問題に直面しているため、このポインタが動的変数を参照しているかどうかを知る方法
c++ - リンク リストの演習、何が間違っているのでしょうか?
こんにちは。動的メモリ割り当て、ポインター、クラス、および例外を含むリンク リストの演習を行っています。誰かがそれを批判して、スタイルと上に挙げたテーマの両方に関して、私がどこを間違えたのか、何を改善すべきだったのかを教えてくれませんか?
c++ - strdup の代替
名前を含む本の C++ クラスを書いています。
std::string
この課題での使用は許可されていません。したがって、ここでstrdup
は、コンストラクターでパラメーター名の値を nm にコピーするために使用しています。
を使用せずに同じ結果を達成する代わりに、代わりstrdup
にキーワードを使用する方法はありnew
ますか?
c - Cで無制限の文字を読む方法
char*
サイズを指定せずに無制限の文字を変数に読み込む方法は?
たとえば、従業員の住所を読みたいとしますが、これも複数行になる可能性があります。
operating-system - 動的に割り当てられたメモリはどこにありますか?
malloc()
と操作がヒープからメモリを動的に割り当てることはわかってnew
いますが、ヒープはどこにありますか?各プロセスには、動的割り当て用の名前空間に独自のプライベートヒープがありますか、それともOSにはすべてのプロセスで共有されるグローバルヒープがありますか。さらに、教科書を読んだところ、メモリリークが発生すると、次にコンピュータを再起動するまで、不足しているメモリを再利用することはできません。この論文は正しいですか?答えが「はい」の場合、どのように説明できますか?
お返事をありがとうございます。
よろしく。
c++ - C++の新しいメモリ割り当ての断片化
新しいアロケータの動作と、データが連続して配置されない理由を調べようとしていました。
私のコード:
だから私はこれをchar、int、ciで実行しました。ほとんどの割り当ては最後から固定長であり、使用可能なブロックから別のブロックへのジャンプが奇妙な場合がありました。
sizeof(char):1
平均ジャンプ:64バイト
sizeof(int):4
平均ジャンプ:16
sizeof(ci):8(intは4バイトの整列に配置する必要があります)
平均ジャンプ:9
アロケータがこのようにメモリを断片化している理由を誰かが説明できますか?また、charのジャンプがintよりもはるかに大きく、intとcharの両方を含む構造であるのはなぜですか。