學習筆記之智慧型指標簡單理解

2021-07-11 01:50:35 字數 604 閱讀 5889

智慧型指標  shared prt

存在乙個智慧型指標類,這個指標類中有乙個指標指向所要指向的變數,還有乙個該變數的引用次數(就是有多少個指標指向該變數)每被賦值一次,該變數的引用就多一次,當要釋放的時候,會先檢查該變數的引用次數如果該變數的引用次數是0才會釋放記憶體否則的話只是將要釋放的指標置空。

智慧型指標解決的問題是懸掛指標(野指標)

設計思想是 將基本型別的指標封裝為類物件指標(可以是模版類)並在析構函式裡進行刪除指標指向記憶體。

智慧型指標是乙個類的物件,當乙個類物件的生存週期過期時,會自動進行析構和銷毀申請的記憶體空間。

stl一共給我們提供了四種智慧型指標:auto_ptr、unique_ptr、shared_ptr和weak_ptr(

避免將非堆變數用智慧型指標進行指向。因為會釋放棧記憶體導致錯誤。

shared_ptr指標的引用計數是通過乙個類物件完成的

還可以通過堆記憶體實現引用。。比如malloc乙個空間專門存放引用數量或者可以用靜態類

class shared_ptr_count

int * p;

int use;

class  shared_ptr 

shared_ptr_count * p;

C 學習筆記之智慧型指標

眾所周知,c 中最讓程式設計師頭疼的就是關於記憶體的問題,其中不外乎以下幾點 1.緩衝區溢位 2.野指標 3.重複釋放記憶體 4.不配對的new delete 5.記憶體洩露 其中大多數的問題都是對指標的不正確使用帶來的。為此c 標準庫中對原始指標做了一些封裝,比如auto ptr,使得指標更容易使...

學習筆記之智慧型指標shared ptr

智慧型指標都定義在 memory 標頭檔案中 程式使用的三種記憶體 靜態記憶體 存放 區域性,全域性static變數,以及全域性變數 棧記憶體 存放 區域性非static變數,函式內部變數 堆記憶體 自由空間 動態分配的物件 記憶體池 shared ptr 允許多個指標指向同乙個物件 shared ...

Rust筆記之智慧型指標

指標 是乙個包含記憶體位址的變數的通用概念。rust中最常見的指標就是引用 t 智慧型指標 是一類資料結構,它們的表現類似指標,但也有額外的元資料和功能。1.box 1 box允許你將乙個值放在堆上而不是棧上,留在棧上的則是指向堆資料的指標。2 除了資料被存放在堆上而不是棧上之外,box沒有效能損失...