女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當前位置:首頁 > > 充電吧
[導讀]了解動態(tài)內(nèi)存在 C++ 中是如何工作的是成為一名合格的 C++ 程序員必不可少的。C++ 程序中的內(nèi)存分為兩個部分:棧:在函數(shù)內(nèi)部聲明的所有變量都將占用棧內(nèi)存。 堆:這是程序中未使用的內(nèi)存,在程序運行

了解動態(tài)內(nèi)存在 C++ 中是如何工作的是成為一名合格的 C++ 程序員必不可少的。C++ 程序中的內(nèi)存分為兩個部分:

棧:在函數(shù)內(nèi)部聲明的所有變量都將占用棧內(nèi)存。 堆:這是程序中未使用的內(nèi)存,在程序運行時可用于動態(tài)分配內(nèi)存。

很多時候,您無法提前預知需要多少內(nèi)存來存儲某個定義變量中的特定信息,所需內(nèi)存的大小需要在運行時才能確定。

在 C++ 中,您可以使用特殊的運算符為給定類型的變量在運行時分配堆內(nèi)的內(nèi)存,這會返回所分配的空間地址。這種運算符即?new?運算符。

如果您不需要動態(tài)分配內(nèi)存,可以使用?delete?運算符,刪除之前由 new 運算符分配的內(nèi)存。

new 和 delete 運算符

下面是使用 new 運算符來為任意的數(shù)據(jù)類型動態(tài)分配內(nèi)存的通用語法:

new?data-type;

在這里,data-type?可以是包括數(shù)組在內(nèi)的任意內(nèi)置的數(shù)據(jù)類型,也可以是包括類或結構在內(nèi)的用戶自定義的任何數(shù)據(jù)類型。讓我們先來看下內(nèi)置的數(shù)據(jù)類型。例如,我們可以定義一個指向 double 類型的指針,然后請求內(nèi)存,該內(nèi)存在執(zhí)行時被分配。我們可以按照下面的語句使用?new?運算符來完成這點:

double*?pvalue??=?NULL;?//?初始化為?null?的指針
pvalue??=?new?double;???//?為變量請求內(nèi)存

如果自由存儲區(qū)已被用完,可能無法成功分配內(nèi)存。所以建議檢查 new 運算符是否返回 NULL 指針,并采取以下適當?shù)牟僮鳎?/p>

double*?pvalue??=?NULL;
if(?!(pvalue??=?new?double?))
{
???cout?<<?"Error:?out?of?memory."?<<endl;
???exit(1);

}

malloc()?函數(shù)在 C 語言中就出現(xiàn)了,在 C++ 中仍然存在,但建議盡量不要使用 malloc() 函數(shù)。new 與 malloc() 函數(shù)相比,其主要的優(yōu)點是,new 不只是分配了內(nèi)存,它還創(chuàng)建了對象。

在任何時候,當您覺得某個已經(jīng)動態(tài)分配內(nèi)存的變量不再需要使用時,您可以使用 delete 操作符釋放它所占用的內(nèi)存,如下所示:

delete?pvalue;????????//?釋放?pvalue?所指向的內(nèi)存

下面的實例中使用了上面的概念,演示了如何使用 new 和 delete 運算符:

#includeusing?namespace?std;

int?main?()
{
???double*?pvalue??=?NULL;?//?初始化為?null?的指針
???pvalue??=?new?double;???//?為變量請求內(nèi)存
?
???*pvalue?=?29494.99;?????//?在分配的地址存儲值
???cout?<<?"Value?of?pvalue?:?"?<<?*pvalue?<<?endl;

???delete?pvalue;?????????//?釋放內(nèi)存

???return?0;
}

當上面的代碼被編譯和執(zhí)行時,它會產(chǎn)生下列結果:

Value?of?pvalue?:?29495

數(shù)組的動態(tài)內(nèi)存分配

假設我們要為一個字符數(shù)組(一個有 20 個字符的字符串)分配內(nèi)存,我們可以使用上面實例中的語法來為數(shù)組動態(tài)地分配內(nèi)存,如下所示:

char*?pvalue??=?NULL;???//?初始化為?null?的指針
pvalue??=?new?char[20];?//?為變量請求內(nèi)存

要刪除我們剛才創(chuàng)建的數(shù)組,語句如下:

delete?[]?pvalue;????????//?刪除?pvalue?所指向的數(shù)組

下面是 new 操作符的通用語法,可以為多維數(shù)組分配內(nèi)存,如下所示:

double**?pvalue??=?NULL;?????//?初始化為?null?的指針
pvalue??=?new?double?[3][4];?//?為一個?3x4?數(shù)組分配內(nèi)存

釋放多維數(shù)組內(nèi)存的語法與二維數(shù)組一樣:

delete?[]?pvalue;????????//?刪除?pvalue?所指向的數(shù)組

對象的動態(tài)內(nèi)存分配

對象與簡單的數(shù)據(jù)類型沒有什么不同。例如,請看下面的代碼,我們將使用一個對象數(shù)組來理清這一概念:

#includeusing?namespace?std;

class?Box
{
???public:
??????Box()?{?
?????????cout?<<?"調(diào)用構造函數(shù)!"?<<endl;?
??????}
??????~Box()?{?
?????????cout?<<?"調(diào)用析構函數(shù)!"?<<endl;?
??????}
};

int?main(?)
{
???Box*?myBoxArray?=?new?Box[4];

???delete?[]?myBoxArray;?//?Delete?array

???return?0;
}

如果要為一個包含四個 Box 對象的數(shù)組分配內(nèi)存,構造函數(shù)將被調(diào)用 4 次,同樣地,當刪除這些對象時,析構函數(shù)也將被調(diào)用相同的次數(shù)(4次)。

當上面的代碼被編譯和執(zhí)行時,它會產(chǎn)生下列結果:

調(diào)用構造函數(shù)!
調(diào)用構造函數(shù)!
調(diào)用構造函數(shù)!
調(diào)用構造函數(shù)!
調(diào)用析構函數(shù)!
調(diào)用析構函數(shù)!
調(diào)用析構函數(shù)!
調(diào)用析構函數(shù)!
本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉