C++ new和delete
在C語(yǔ)言中,動(dòng)態(tài)分配內(nèi)存用 malloc() 函數(shù),釋放內(nèi)存用 free() 函數(shù)。如下所示:
int *p = (int*) malloc( sizeof(int) * 10 ); //分配10個(gè)int型的內(nèi)存空間free(p); //釋放內(nèi)存在cpp中,這兩個(gè)函數(shù)仍然可以使用,但是C++又新增了兩個(gè)關(guān)鍵字,new 和 delete:new 用來(lái)動(dòng)態(tài)分配內(nèi)存,delete 用來(lái)釋放內(nèi)存。
用 new 和 delete 分配內(nèi)存更加簡(jiǎn)單:
new 操作符會(huì)根據(jù)后面的數(shù)據(jù)類型來(lái)推斷所需空間的大小。
如果希望分配一組連續(xù)的數(shù)據(jù),可以使用 new[]:
用 new[] 分配的內(nèi)存需要用 delete[] 釋放,它們是一一對(duì)應(yīng)的。
和 malloc() 一樣,new 也是在堆區(qū)分配內(nèi)存,必須手動(dòng)釋放,否則只能等到程序運(yùn)行結(jié)束由操作系統(tǒng)回收。為了避免內(nèi)存泄露,通常 new 和 delete、new[] 和 delete[] 操作符應(yīng)該成對(duì)出現(xiàn),并且不要和C語(yǔ)言中 malloc()、free() 一起混用。
總結(jié)
以上是生活随笔為你收集整理的C++ new和delete的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c++标准库fstream文件
- 下一篇: yarn关于app max attemp