C 記憶體管理與注意事項

2021-10-02 10:45:54 字數 1109 閱讀 5857

記憶體是程式執行必不可少的資源,由作業系統分配和管理。作為程式設計師,我們通常做的只能是申請和歸還。本文主要介紹c++記憶體的申請和釋放(歸還),以及注意事項。

申請 new

釋放 delete

申請記憶體:

int *p = new

int;

//定義乙個指標,來接收new申請到的位址

釋放記憶體:

delete p;

塊記憶體的申請和釋放:

//申請

int *arr = new int[10];

//釋放

delete arr;

3.1 配套使用

我們知道在c語言中記憶體的申請和釋放是malloc 和free完成:

//申請

void *malloc(size_t size);

//釋放

void free(void *memblock);

但是在c++中使用的是new和delete;如果使用c語言的方式申請,就得用c語言的方式釋放;使用c++的方式申請,就得用c++的方式釋放;配套使用。否則無法通過編譯。

3.2 記憶體可能申請失敗,需要有異常處理

int *p = new int[1000];

if (null == p)

3.3 釋放記憶體需要將指標置為空

int *p = new int[1000];

if (null == p)

delete p; //釋放

p = null;

除了釋放記憶體,還得將指標置為空;否則指標還指向之前的記憶體,如果不小心再執行了delete p;操作,就會導致同一塊記憶體被重複**兩次,將引發嚴重錯誤。

#include #include using namespace std;

int main(void)

C 注意事項

include using namespace std class superclass virtual superclass virtual void dosomething const protected intitsage class subclass public superclass vo...

c 注意事項

const引用.const引用是指向const物件的引用 const int ival 1024 const int refval ival 正確,引用和引用的物件都是const int ref2 ival 這是錯誤的,因為引用不是const int i 42 const int r 42 這是正確...

iPhone 開發中記憶體管理注意事項 TOP 8

記憶體管理可以說是 iphone 開發中最重要也最令人頭疼的關鍵點。cocoachina 版主 lvyile 總結了記憶體管理中最應注意的事項,分別是 通過分配或複製建立的物件保持計數為 1 假設任何別的方法獲取的物件保持計數為1,而且在自動釋放池中,要想在當前執行範圍外使用該物件,就必須保持它 向...