new と delete と malloc と free と スタック と ヒープ
new delete と malloc free
メモリ確保解放の方法new deleteとmalloc freeの差
- new delete
C++から実装
newで確保するとコンストラクタが、deleteで開放するとデストラクタが呼ばれる。
- malloc free
Cで実装。C++でも使える
mallocしてもコンストラクタは呼ばれない。
freeしてもデストラクタは呼ばれない。
- 共通
ヒープ領域に確保される。
解放を忘れるとメモリリークする。
種類 | Cで使えるか | C++で使えるか | コンストラクタ デストラクタ |
領域 | 解放 |
---|---|---|---|---|---|
new delete |
使えない | 使える | 通る | ヒープ | 手動 |
malloc free |
使える | 使える | 通らない | ヒープ | 手動 |