C 動態記憶體管理

2021-10-13 22:57:16 字數 717 閱讀 9532

c語言中我們經常用malloc申請空間。但是malloc由些許麻煩 (比如返回void指標) 。所以在cpp中我們可以使用更簡單的new申請空間(當然new和malloc的區別還很多)

型別 變數名 =

new 型別 賦值

例如

int

*a =

newint(10

);delete a;

10 可以直接賦值給a指向的位址

刪除時直接delete + 該指標即可。

申請沒啥可說的,照葫蘆畫瓢

int

*p =

newint[4

];int(

*p1)[3

]=newint[4

][3]

;

但是刪除就多了個東西

delete

p;delete

p1;

// 二維也是一樣,資料在記憶體裡是線性的

為啥有不是咱研究的範圍,只需要知道只要不是釋放單個資料的空間就加上就是

都差不多

struct student

;struct student* p =

newstruct student[3]

,,};

delete p;

C 動態記憶體管理

我們都知道在c 中可以用new malloc動態分配記憶體空間,delete free釋放動態開闢的記憶體空間。1.那麼既然c 中有了可以動態開闢記憶體的函式為什麼又要有new delete呢?c 中的malloc free是繼承c語言中的malloc free,它的用法和在c語言中的用法一模一樣。...

C 動態記憶體管理

1 總結並剖析malloc free和new delete之間關係和差異。1 他們都是動態記憶體管理的入口 2 malloc要計算空間大小,返回值要強轉 new自動計算位元組大小,返回值是相應型別的指標 3 malloc只開闢空間 new開闢空間 呼叫建構函式初始化 delete呼叫析構函式清理 釋...

c 動態記憶體管理

c語言動態記憶體管理 c中關於動態記憶體的標準庫函式 malloc calloc realloc free 以下是關於這幾個函式的介紹 1 malloc 用於動態開闢記憶體 堆空間 返回型別為void 引數 size t size 是無符號整型表示要開闢的空間大小,單位是位元組,2 calloc 用...