1.1 c++ 中的動態記憶體分配
(1)c++ 中通過new關鍵字進行動態記憶體申請
(2)c++ 中的動態記憶體申請是基於型別進行的
(3)delete關鍵字用於記憶體釋放
1 type *pointer = new變數申請type;2//
......
3delete pointer;
1 type *pointer = new陣列申請type[n];2//
......
3delete pointer;
1 #include 2c++中的動態記憶體分配3int
main()423
24delete p; //
注意釋放的時候不要忘記 否則只能釋放陣列的第乙個元素
2526
return0;
27 }
1.2 new 關鍵字與malloc 函式的區別
new
malloc
性質
c++的關鍵字,屬於c++的一部分
由c庫提供的函式,有些編譯器可能未包含
申請單位
以具體型別為單位
以位元組為單位
記憶體初始化
申請單個型別變數時可進行初始化
不具備記憶體初始化的特性
1.3 new 關鍵字的初始化
4初始化動態記憶體
(1)在c語言中只有乙個全域性作用域
① c語言中所有的全域性識別符號共享同乙個作用域
② 識別符號之間可能發生衝突
(2)c++ 中提出了命名空間的概念
① 命名空間將全域性作用域分成不同的部分
② 不同命名空間中的識別符號可以同名而不會發生衝突
③ 命名空間可以相互巢狀
④ 全域性作用於也叫預設命名空間
(3)c++ 命名空間的定義
(4)c++命名空間的使用
① 使用整個命名空間:using namespace name;
② 使用命名空間中的變數:using name::
variable;
③ 使用預設命名空間中的變數:::
variable
1 #include 2命名空間的使用3namespace
first47
8namespace
second9;
20}21}
2223
intmain()24;
3233 printf("
p.x = %d\n
", p.x);//
234 printf("
p.y = %d\n
", p.y);//335
36return
0;
37 }
(1)c++ 中內建了動態記憶體分配的專用關鍵字
(2)c++ 中的動態記憶體分配可以同時進行初始化
(3)c++ 中的動態記憶體分配是基於型別進行的
(4)c++ 中命名空間概念用於解決名稱衝突的問題
第10課 C 中的新成員
本文內容取自於對狄泰學院 唐佐林老師 c 深度解析 課程的學習總結 例項分析 c 中的動態記憶體分配 include intmain delete p return0 執行結果 new關鍵字與malloc函式的區別 new關鍵字是c 的一部分 malloc是由c庫提供的函式 new 以具體型別為單位...
10 C 中的新成員
注 部落格中內容主要來自 狄泰軟體學院 部落格僅當私人筆記使用。測試環境 ubuntu 10.10 gcc版本 4.4.5 一 動態記憶體分配 1 c 中的動態記憶體分配 c 中通過new關鍵字進行動態記憶體申請 c 中的動態記憶體申請是基於型別進行的 delete關鍵字用於記憶體釋放 釋放陣列記憶...
C 10 C 中的新成員
變數申請 type pointer new type 堆空間中單個記憶體單元申請 delete pointer 釋放 pointer 所指向的單個記憶體單元陣列申請 type pointer new type n 堆空間中連續 n 個記憶體單元申請 delete pointer 釋放 pointer...