直接管理内存——new和delete
生活随笔
收集整理的這篇文章主要介紹了
直接管理内存——new和delete
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、運算符new
1. 使用new動態分配對象
- 在自由空間分配的內存是無名的,故new無法為其分配的對象命名,而是返回一個指向該對象的指針
- int *pi = new int; //pi指向一個動態分配的、未初始化的無名對象
- 表達式“new int”:①在自由空間構造一個 int 型對象;②返回指向該對象的指針
2. 使用new動態分配并初始化對象
- int *pi1 = new int; //默認初始化,*pi1的值未定義
- int *pi2 = new int(); //對動態分配的對象進行值初始化,*pi2的值為0
- int *pi3 = new int(24) //直接初始化,pi3指向的對象的值為24
- int *pi4 = new int{24} //同上
注:對于定義了自己的構造函數的類類型來說,值初始化和默認初始化的效果是一樣的;但對于內置類型來說,值初始化的內置類型對象有著良好定義的值,而默認初始化的對象的值是未定義的。
?
二、運算符delete
1. 傳遞給delete的指針必須指向動態分配的內存,或者是一個空指針
2. const對象是可以銷毀的
3. 空懸指針:當delete一個指針后,該指針就變為空懸指針了
?
轉載于:https://www.cnblogs.com/xzxl/p/7738152.html
總結
以上是生活随笔為你收集整理的直接管理内存——new和delete的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C 语言中结构体强制转换--实验
- 下一篇: JUnit简介与初步使用