[スイッチ]は自動的にC ++、動的および静的メモリ記憶装置に記憶されています

自動ストレージ、静的及び動的記憶メモリ(とも呼ばれる空きメモリ空間またはヒープ):メモリーを割り当てるための方法は、C ++は、によって管理データメモリ3を有しています。本態様では、これらの3つの異なる方法に割り当てられたデータ・オブジェクトの間の長さです。簡単に三種類について説明し、次の: - (注スレッドストレージC ++ 11は、第4のタイプの添加)
1自動ストレージ
変数関数内で定義された従来の自動ストレージ・スペースで使用される自動変数と呼ばれる(自動を関数が属している場合、それらが自動的に生成されることを意味変数)は、関数の最後に死ぬ、と呼ばれています。のみ一時配列のgetName()関数アクティビティがある場合、例えば、ブロックは、カスタムのgetNameに一時配列()関数を定義します。ときに制御が戻るが、のような多くのmain()、使用される一時メモリは自動的に解放されます。getName()一時リターンアドレス場合は、メインの名前のポインタは、()、それはすぐに再利用されますメモリによって指さ。これは、1つの理由である内のgetNameで新しいの使用()。
実際には、自動変数は、スコープはそのコードブロックを含むことであるローカル変数です。コードブロックは中括弧内に含まれるコードです。
自動変数は、通常、スタック上に保存されています。これはコードブロックを残して変数を順次、スタックに追加されたコードのブロックは、放出がこれらの変数の順序を逆にすることを意味し、それはLIFO(LIFO)と呼ばれます。そのため、プログラムの実行中に、スタックが成長し、縮小していきます。
2.静的ストレージ
静的記憶装置は、記憶され、プログラム全体の実行中に存在しています。2つの方法で静的変数と呼ばれる:一つは、それが関数の外で定義されていることであるキーワードが変数を宣言するために使用される別のSTATIS:
静的ダブル料金= 56.50;
3.ダイナミックストレージ
newとdelete演算子は、自動的な方法よりも柔軟性および静的変数を提供しています。彼らは、C ++空き容量(空き店舗)またはヒープ(ヒープ)に呼び出されたメモリプールを管理します。静的変数と自動変数のためのメモリを搭載したメモリプールが分離されています。新しい、あなたが機能でメモリを割り当てて、別の関数にそれを解放することができますので、削除します。したがって、文の周期データは、ライフタイム制御プログラムや機能が完全に閉じていません。従来の変数、新しいの使用と比較され、プログラマはプログラムがより大きい制御を持っているかのメモリを使用できるように削除します。しかし、メモリ管理、より複雑。スタックでは、自動的に追加および除去機構は、メモリの量が常に連続して行い、新たに割り当てられたメモリ位置の追跡がより困難に不連続が占める空き記憶領域につながる可能性があり、新たな単一の相互作用を削除します。

---------------------
著者:月光詩人
出典:CNBLOGS
オリジナル:https://www.cnblogs.com/moonlightpoet/p/5647866.html
著作権:本稿では、著者のオリジナルの記事、複製、ボーエンのリンクを添付してください!

おすすめ

転載: www.cnblogs.com/shawnchou/p/11442033.html