[解決済み] C++, フリーストアとヒープ
質問
動的アロケーションで
new/delete
が行われると言われています。
フリーストア
,
一方
malloc/free
の操作では
ヒープ
.
実際に違いがあるのかどうか、実際に知りたいです。
コンパイラはこの2つの用語を区別しているのでしょうか?(
フリーストア
と
ヒープ
ではなく
new/malloc
)
どのように解決するのですか?
参照 http://www.gotw.ca/gotw/009.htm ヒープとフリーストアの違いについて、私よりもずっとうまく説明してくれています。
フリーストア。
フリーストアは、2つの 動的メモリ領域で、new/deleteによって割り当て/解放されます。 を行います。 オブジェクトの寿命は ストレージが割り当てられた時間よりも短くすることができます。 つまり、フリー・ストア・オブジェクトは つまり、フリー・ストア・オブジェクトは、すぐに初期化されることなく、メモリが すぐに初期化されることなくメモリを確保することができ、また 破壊されても、メモリがすぐに解放されることはありません。 即座にメモリが解放されることなく破棄することができます。 ストレージが確保されている間 ストレージが割り当てられている期間 ストレージが割り当てられるが、オブジェクトのライフタイム外である期間、その ストレージにアクセスすることができる。 ストレージにアクセスし、操作することは可能であるが プロトオブジェクトの非静的メンバやメンバ関数を使用することはできません。 メンバやメンバ関数にアクセスすることはできません。 アクセスしたり、そのアドレスを取得したりすることはできません。 または他の方法で操作されることはありません。
ヒープです。
<ブロッククオートヒープはもうひとつの動的メモリ領域です。 領域で、malloc/free によって割り当て/解放されます。 とその派生型によって確保/解放されます。 一方 デフォルトのグローバルな新規作成と削除は が実装されているかもしれません。 コンパイラによって、mallocとfreeで実装されるかもしれません。 コンパイラで実装されるかもしれませんが,ヒープが と同じではなく、ある領域で確保されたメモリは に割り当てられたメモリを安全に解放することはできません。 ヒープとフリーストアは別物であり、一方の領域で確保したメモリを他方で安全に解放することはできません。ヒープから割り当てられたメモリは ヒープから割り当てられたメモリは、クラス 型のオブジェクトに使用することができます。 明示的な破壊 そのように使用された場合 フリー・ストア・オブジェクトの寿命に関する注意事項 はここでも同様に適用されます。
関連
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み】'cout'は型名ではない
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み】リンカーエラーです。"リンカ入力ファイルはリンクが行われていないため未使用"、そのファイル内の関数への未定義参照
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み】クラスのコンストラクタへの未定義参照、.cppファイルの修正も含む
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】C-stringを使用すると警告が表示される。"ローカル変数に関連するスタックメモリのアドレスが返される"
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】変数 '' を抽象型 '' と宣言できない。
-
[解決済み】C++の余分な資格エラー
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)