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指標。...