刷野打怪上王者 C 篇 第25期 動態記憶體處理

2021-10-02 18:41:17 字數 2090 閱讀 4579

參考鏈結

runoob.com

動態記憶體處理

為什麼會有這麼乙個概念呢?我們在寫程式的時候,有的時候很難提前預知定義的變數需要申請多少記憶體,只有在程式執行的過程才能夠確定。需要說明一點,在c++中記憶體由兩部分組成:。其中,函式內宣告的所有變數使用來儲存;對於程式未使用的可用於動態分配的記憶體則有完成。

要進行動態申請記憶體,c++提供了空間分配new運算子,還提供了刪除分配的空間運算子delete。下面我們將從資料型別陣列類物件的動態記憶體處理進行詳細分析一下:

資料型別動態記憶體處理

直接在程式例項中學習:

#include using namespace std;

int main()

執行結果

5.6
陣列動態記憶體處理

#include using namespace std;

int main()

delete iarray1; //釋放分配的記憶體

cout << endl << endl;

/*二維陣列處理*/

iarray2 = new int *[5];

for (int id = 0; id < 5; id++)

iarray2[id] = new int[2];

for (int idx = 0; idx < 5; idx++) //想分配的陣列記憶體複製

cout << endl;

} for (int id = 0; id < 5; id++) //釋放分配的記憶體(在這裡一層層的釋放)

delete iarray2[id];

delete iarray2;

cout << endl;

/*三維陣列處理*/

iarray3 = new int **[3];

for (int idx = 0; idx < 3; idx++)

for (int idx = 0; idx < 3; idx++) //想分配的陣列記憶體複製

cout << endl;

} cout << endl;

} for (int idx = 0; idx < 3; idx++) //釋放分配的記憶體

delete iarray3;

getchar();

}

執行結果

0   1   2   3   4

0 1

1 2

2 3

3 4

4 5

0 1 2

1 2 3

2 3 4

1 2 3

2 3 4

3 4 5

2 3 4

3 4 5

4 5 6

類物件動態記憶體處理這裡其實在前面講解類的時候已經使用過,下面我在使用簡單程式看一下:

#include using namespace std;

class printclass

private:

};printclass::printclass(){}

printclass::~printclass(){}

int main()

執行結果

天眼工作室

刷野打怪上王者 C 篇 第4期 注釋

c 注釋 要寫出好程式,一方面要實現特定的功能,另外一方面就是能夠讓別人看懂自己寫的 那怎麼讓人更好的看懂自己的 一是要有良好的命名規則 這個已經在上篇說過啦 二是要有寫程式注釋的習慣。在c 程式設計中的注釋主要有兩個 單行注釋和多行注釋。單行注釋其實就是在程式行前新增 cout hello wor...

刷野打怪上王者 C 篇 第27期 總結

刷野打怪上王者 c 篇 第26期 時間函式 預處理 刷野打怪上王者 c 篇 第25期 動態記憶體處理 刷野打怪上王者 c 篇 第24期 訊號處理 刷野打怪上王者 c 篇 第23期 標準流輸入輸出 刷野打怪上王者 c 篇 第22期 多執行緒處理 刷野打怪上王者 c 篇 第21期 模板處理 刷野打怪上王...

刷野打怪上王者 C 篇 第9期 判斷 迴圈

參考鏈結 runoob.com 判斷 在判斷語句中主要有兩種 if.else和switch兩個語句。下面我們還是主要通過 來說明 先看一看看if.else語句 include using namespace std int main 執行結果 ivar1 小於 ivar2上面這段 是前幾篇中提到的,...