在C++中,動(dòng)態(tài)內(nèi)存分配通常使用new
和delete
關(guān)鍵字來(lái)實(shí)現(xiàn)。以下是動(dòng)態(tài)內(nèi)存分配的基本步驟:
使用new
關(guān)鍵字來(lái)分配內(nèi)存:new
關(guān)鍵字用于在堆上動(dòng)態(tài)分配內(nèi)存空間,并返回指向分配內(nèi)存的指針。例如,int* ptr = new int;
將在堆上分配一個(gè)整數(shù)的內(nèi)存空間,并將指向該內(nèi)存空間的指針存儲(chǔ)在ptr
中。
使用delete
關(guān)鍵字來(lái)釋放內(nèi)存:delete
關(guān)鍵字用于釋放之前使用new
關(guān)鍵字分配的內(nèi)存空間。例如,delete ptr;
將釋放ptr
指向的內(nèi)存空間。
動(dòng)態(tài)數(shù)組分配:除了分配單個(gè)對(duì)象外,還可以使用new[]
和delete[]
關(guān)鍵字來(lái)分配和釋放動(dòng)態(tài)數(shù)組。例如,int* arr = new int[5];
將在堆上分配包含5個(gè)整數(shù)的數(shù)組的內(nèi)存空間,并將指向該數(shù)組的指針存儲(chǔ)在arr
中。使用delete[] arr;
來(lái)釋放分配的數(shù)組內(nèi)存。
需要注意以下幾點(diǎn):