動態記憶體分配 命名空間

2021-10-10 15:08:19 字數 1418 閱讀 3748

c++中的動態記憶體分配

-c++中通過new關鍵子進行動態記憶體申請

-c++中的動態記憶體申請時基於型別進行的

-delete關鍵子用於記憶體釋放

c語言中是通過庫函式中的malloc函式實現動態記憶體分配

在一些簡單的硬體平台中,可能就不能支援c的記憶體分配了

變數申請

type* pointer =

new type;

delete pointer;

陣列申請

type* pointer =

new type[n]

;delete

pointer;

new 關鍵字與malloc函式的區別

new關鍵字是c++的一部分

malloc由c庫提供的函式

new以具體型別為單位進行記憶體分配

malloc以位元組為單位進行記憶體分配

new在申請單個型別變數時可進行初始化

malloc不具備記憶體初始化的特性

new關鍵字的初始化(malloc函式不具備這個功能)

int

* pi =

newont(1

);float

* pf =

newfloat

(2.0f);

char

* pc =

newchar

('c'

);

在c語言中只有乙個全域性作用域

-c語言中所有的全域性識別符號共享同乙個作用域

-識別符號之間可能發生衝突

c++中提出了命名空間的概念

-命名空間將全域性作用域分成不同的部分

-不同命名空間中的識別符號可以同名而不會發燒友橫衝突

-命名空間可以相互巢狀

-全域性作用域也叫預設命名空間

namespace name

}

-使用整個命名空間: using namespace name;

-使用命名空間中的變數:using name::variable;

-使用預設命名空間:::variable

#include

namespace first

namespace second;}

}int

main()

;printf

("p.x = %d\n"

,p.x)

;printf

("p.y = %d\n"

,p.y)

;return0;

}

C 動態記憶體分配與命名空間

1 c 中的動態記憶體分配 malloc是基於位元組來進行動態記憶體分配的,new則是基於型別來進行動態記憶體分配 變數申請 type pointer new type 從堆空間獲取乙個新的type型別的空間 使用和c語言一樣 delete pointer 這裡指的是pointer所指向的那個元素的...

動態記憶體與命名空間

動態記憶體 c語言 malloc realloc calloc free c 語言 new delete 1.c語言的動態分配是通過函式,c 是通過運算子 2.c語言的動態分配不能和c 混用 new和delete的用法 new兩種用法 1.分配單個記憶體 2.分配連續記憶體 分配單個記憶體也有兩種情...

動態記憶體分配

在c 中建立乙個物件時,我們必須要為這個物件申請一塊記憶體,而且要用建構函式對這塊記憶體進行初始化。c 中的new和delete相對於c的庫函式malloc和free在這方面有很大的優勢,所以我們主要講的是運算子new和delete。當用new來建立乙個物件時,它會自動在堆裡為物件分配記憶體並且為這...