new動態分配和初始化物件

2021-10-02 16:15:42 字數 426 閱讀 2205

1,自由空間分配的記憶體是無名的

2,new無法為其分配的物件命名,而是返回乙個指向該物件的指標

3,預設情況,動態分配的物件是預設初始化的,所以內建型別或組合型別的物件值是未定義的,而類型別物件將用預設建構函式進行初始化

string *ps = new string; //初始化為空string

int *pi = new int; //pi指向乙個未初始化的int

4,初始化的三種方式

1)直接初始化方式,初始化乙個動態分配的物件

2)傳統的構造方式(圓括號),

3)使用初始化列表(使用花括號)

int *pi = new int(1024);

string *ps = new string(10,'9);

初始化動態分配的陣列

動態分配陣列時,如果陣列元素具有類型別,將使用該類的預設建構函式實現初始化 不能像陣列變數一樣,用初始化列表為陣列元素提供各不相同的初值。如果陣列元素是內建型別,則無初始化。也可以使用跟在陣列長度後面的一對空圓括號,對陣列元素做值初始化。圓括號要求編譯器對陣列做值初始化。如果我們在自由儲存區中建立的...

objective c 分配和初始化物件

和c 類似oc中也有乙個根型別,也就是nsobject,它包含乙個alloc方法和乙個init方法。顧名思義,alloc用於申請記憶體,建立乙個物件的內部結構,並且將例項變數賦值為0。init方法賦值將變數的值賦值為預設值 似乎和0不一樣 然後執行一些其它的任務。alloc就像進入了一輛車裡,而in...

malloc和new動態分配這些事

未完待續 malloc 是c語言中動態儲存管理的一組標準庫函式之一。其作用是在記憶體的動態儲存區中分配乙個長度為size的連續空間。其引數是乙個無符號整形數,返回值是乙個指向所分配的連續儲存域的起始位址的指標。還有一點必須注意的是,當函式未能成功分配儲存空間 如記憶體不足 就會返回乙個null指標。...