c primer 動態記憶體學習小記

2021-10-03 01:19:19 字數 379 閱讀 4730

在做練習題12.7時,遇到乙個問題,如果這麼定義乙個shared_ptr是有問題得,不能往裡面push_back元素,如下**所示

auto create() 

auto input(shared_ptr> d)

return d;

}

如果這樣建立了p之後 傳入到input函式中使用push_back(),就會出錯。

正確得做法,應該需要在後面加上make_shared初始化。如下

auto create()
產生這樣的問題原因(個人推測)是:使用shared_ptr僅能宣告乙個智慧型指標,此時智慧型指標並沒有初始化,所以往裡面push_back元素會出現問題。

c primer 動態記憶體

在這裡提到的內容裡,均包含在標頭檔案 include裡面,主要涉及c 的記憶體管理問題,在做專案的時候,可能會遇到,僅僅只是個人筆記,如有錯誤,還請大神賜教。1.智慧型指標 指的是在程式呼叫完最後乙個智慧型指標指的物件,自動釋放記憶體單元。包含shared ptr,unique ptr,weak p...

c primer筆記 動態記憶體

shared ptr p1 儲存著乙個空指標 make shared args shared ptr p3 make shared 42 shared ptr p4 make shared 10,d 引用計數 拷貝,初始化,函式引數,函式返回值,計數 1 銷毀計數 1 auto r make sha...

c primer 學習筆記11 動態記憶體

書本411頁。練習12.6 編寫函式,返回乙個動態分配的int的vector。將此vector傳遞給另乙個函式,這個函式讀取標準輸入,將輸入的值儲存在vector元素中,再將vector傳遞給另乙個函式,列印輸入的值。記得在恰當的時候delete vector。include include usi...