malloc free
malloc是c語言中動態開闢記憶體時常用的函式,malloc只能單純地開闢記憶體,使用malloc後,還需要在使用完之後用free釋放掉其所開闢的空間。其函式原型如下:
void
*malloc
(size_t size);//void* 指向的是乙個半開半閉的區間,即[ ),因此不安全
c和c++中允許任意型別的指標轉成void* ,而若想將void* 轉成別的型別的指標需要強轉。
new delete
c++中動態開闢記憶體使用new關鍵字,而釋放記憶體使用delete關鍵字。new不僅能開闢記憶體,而且還能夠做初始化,例如:
int
* p=
newint(10
);//型別+初始化列表
delete p;
int* p=
newint[10
];//開闢陣列p[10]
delete
p;int* p=
newint[10
]();
//只能進行零初始化
const
int* p=
newconst
int(20)
;//開闢常量記憶體
//重定位new
int a;
char
* c=
new(
&a)char
('a');
//通過new後面的位址所對應的記憶體單元,拿到記憶體供外部使用
new和malloc的區別
1.new是關鍵字,malloc是乙個函式;
2.new不需要確定開闢的大小,malloc需要傳遞開闢的大小;
3.new返回值型別安全,malloc返回值型別不安全;
4.new還可以做初始化,malloc只能開闢記憶體;
5.new是以 new[ ]的形式開闢陣列,而malloc開闢陣列以開闢總大小的方式處理;
6.new開闢記憶體失敗,直接丟擲異常,而malloc開闢失敗返回null;
7.new開闢的記憶體位置是自由儲存區域,malloc在堆上開闢;
new關鍵字 this關鍵字 base關鍵字
使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...
new 和 delete關鍵字
一 在了解new和delete之前我們先回顧一下c語言中malloc和free的用法。malloc 用來在堆上動態開闢記憶體 free 釋放記憶體 二 現在我們來簡單了解一下new和delete的用法 new 用來動態開闢記憶體 也可做初始化 delete 用來釋放空間和資源 三 c 中new與c中...
關鍵字new和instanof(PHP)
物件是類的例項,可以使用new關鍵字建立物件。instancof關鍵字可以用來檢測某個物件是否屬於某個類,返回值為布林值。例如 xx instanceof user 注意 如果建立類中的建構函式包含引數,則在建立物件時也需要提供相應的引數。class user function destruct f...