C ++ - 動的に割り当てられたメモリ

 

0.はじめに

C ++では、プログラムメモリ空間は、2つの部分、ヒープ及びスタックに分割されています。

スタック:関数内で宣言されたすべての変数がスタックに存在しています。
ヒープ:メモリがプログラムでメモリ空間の動的割り当てのために使用されていないプログラムが実行されています。
 
およびC ++アプリケーションでは、メモリ空間の新しいリリースによって制御と演算子を削除することができます。
 
新しい:メモリ空間の期間に適用され、オブジェクトを作成し、開始メモリアドレス空間に戻ります。
削除:割り当てられたメモリスペースを削除し、メモリリークを防ぎます。
 

1.新しいです

 
新しいTYPE_NAME
 
新しいアプリケーションのメモリ空間は、任意の組み込み可能なデータの種類、構造が定義され、又はクラスからのものであってもよいです。
ダブル* p値= NULL; //ポインタをnullに初期化された
p値を=新しいダブル; //変数のメモリ要求

2.削除

オブジェクトの動的なアプリケーションメモリはもはや使用されている場合、削除によって割り当てられたメモリ空間の解放。
p値を削除; //メモリ尖ったp値を解放
 

3.動的に割り当てられた配列

CHAR * p値= NULL; //ポインタがヌルに初期化され
、p値=新しいCHAR [20] // 可変メモリ要求
[] p値を削除; //アレイはp値を指摘削除
 
それは、二次元配列の場合
INT **配列//配列の長さmの最初の寸法、空間の第2の長さ寸法が動的に割り当てられると仮定するN- 
アレイ=新しい新しいINT * [M]; 
(; Iがm <I ++はI = 0の整数)のための
{ 
  アレイ[I] =新しい新しいINT [N-]; 
} //放出
  (; Iがm <; I = 0 int型Iは++)のために
 { 
  削除[] arrary [I]; 
} 
[]配列を削除し、

 

4.カスタムオブジェクトに割り当てられたメモリ空間

書式#include <iostreamの> 
使用して、名前空間STD; 
 
クラスボックス
{ 
   パブリック:
      ボックス(){ 
         COUT << "!コンストラクタを呼び出す" <<てendl; 
      } 
      〜ボックス(){ 
         COUTは、<< "デストラクタを呼ぶ!" <<てendl ; 
      } 
}; 
 
int型のmain()
{ 
   [4]ボックス*ボックス新しい新しいmyBoxArray =; 
 
   削除[] myBoxArray; //配列の削除
   戻り0; 
}

  

 参考:

https://www.runoob.com/cplusplus/cpp-dynamic-memory.html

おすすめ

転載: www.cnblogs.com/east1203/p/11595151.html