C 動態分配 存放結構體變數

2021-10-13 22:38:54 字數 1261 閱讀 4735

c語言是利用庫函式malloc和free來分配和撤銷記憶體空間的;c++同樣提供了較簡便而功能較強的運算子new和delete來取代malloc和free函式。

在c++中,new和delete是運算子,不是函式,因此執行效率高,為了與c語言相容,c++仍保留malloc和free函 數,但不建議讀者使用malloc和free函式,而是使用new和delete運算子。

new

int;

//開闢乙個存放整數的儲存空間,返回乙個指向該儲存空 間的位址

newint

(100

)//開闢乙個存放整數的空間,並指定該整數的初值為100,返回乙個指向該儲存空間的位址

newchar[10

];//開闢乙個存放字元陣列的空間,返回首元素的位址

newint[3

][4]

;//開闢乙個存放二維整型陣列的空間,返回首元素的位址

float

*point=

newfloat

(3.1415);

//開闢乙個存放單精度數的空間,並指定該實數的初值為3.1415,將返回的該空間的位址賦給指標變數point

new運算子使用的一般格式

new 型別 [初值]
在c++中,用new分配陣列空間時不能指定初值,如果由於記憶體不足導致無法正常分配空間,則new會返回 乙個空指標null,讀者可以根據該指標的值判斷分配空間是否成功。

c++在動態分配或撤銷空間時,往往將new、delete兩個運算子和結構體結合使用。

經典案例:c++實現開闢空間存放結構體變數。

#include

//預處理

#include

using

namespace std;

//命名空間

struct student

;int

main()

//主函式

編譯執行結果:

10001

yan xiao linm--

----

----

----

----

----

----

----

--process exited after 2.318 seconds with return value 0

請按任意鍵繼續.

..

c++存放結構體變數

關於C 動態分配

一 c 提供的預設成員方法 1.1 預設建構函式如無定義建構函式 12 拷貝建構函式如無定義。1.3 賦值執行符 如無定義。1.4 位址執行符如無事實上義 2 類成員中含動態分配的指標 2.1 需重新定義拷貝結構函式,避免呼叫隱式拷貝建構函式。2.2 重新定義執行符 過載函式,避免呼叫隱式拷貝建構函...

C語言動態分配記憶體

動態開闢記憶體的函式 void malloc size t size 這個函式向記憶體申請 塊連續可 的空間,並返回指向這塊空間的指標 如果開闢成功,則返回 個指向開闢好空間的指標 如果開闢失敗,則返回 個null指標,因此malloc的返回值 定要做檢查 返回值的型別是 void 所以malloc...

動態分配const物件(C )

在c 中,允許動態建立const物件,格式如下 const int p new const int 128 與其他常量一樣,動態建立的const物件必須在建立時初始化,並且初始化後,其值不能改變。儘管不能改變const物件的值,但可以刪除動態建立的const物件,格式如下 delete p 這個和普...