參考鏈結
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上面這段 是前幾篇中提到的,...