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

2021-07-25 02:36:08 字數 1439 閱讀 7163

智慧型指標都定義在 memory 標頭檔案中

程式使用的三種記憶體

靜態記憶體----存放------區域性,全域性static變數,以及全域性變數

棧記憶體------存放-------區域性非static變數,函式內部變數

堆記憶體(自由空間)-----動態分配的物件----------------記憶體池

shared_ptr 允許多個指標指向同乙個物件

shared_ptrp1;  //智慧型指標的建立(空指標)

在程式設計的過程中要時刻謹記 空指針對程式造成的危害 所以一般對指標的呼叫都要檢查是否為空指標,若為空則進行錯誤處理。

void algorithm(int x)

;

最安全的分配和使用動態記憶體的方法是呼叫乙個 make_shared 標準庫函式,定義在memory 中

shared_ptr 獨有的操作

shared_ptrp1=make_shared("abdc");

auto p1=make_shared("abdc");

shared_ptr 和 new 集合使用

shared_ptrp(new int(1024));

定義自己的釋放操作  ---(刪除器)

int n;

shared_ptrp(&n,de);//de 是自己定義的釋放操作函式的函式名

shared_ptr> p(new vector);

shared_ptr> p=make_shared>( );

p->push_back("aa");

cout

C 學習筆記之智慧型指標

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

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

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

Rust筆記之智慧型指標

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