在C++中,可以使用new操作符動態地分配內存,這與靜態內存分配是不同的,靜態內存分配是在編譯時期進行的,而動態內存分配是在運行時期進行的。使用動態內存分配可以讓程序在運行的時候根據需要動態地創建數據結構,並且可以在不需要的時候釋放內存,以提高程序的效率。
一、使用new操作符分配內存
//使用new操作符分配內存 int *p = new int; //分配一個int類型的內存空間 *p = 10; //將值10存儲到分配的內存空間中 delete p; //釋放內存空間
上述代碼使用new操作符分配了一個int類型的內存空間,並且將值10存儲到該內存空間中,最後使用delete操作符釋放內存空間。
二、使用new操作符分配數組
//使用new操作符分配數組 int *p = new int[10]; //分配一個包含10個int類型元素的數組 for(int i=0;i<10;i++) { *(p+i) = i; //將i存儲到數組中 } delete []p; //釋放數組所佔的內存空間
上述代碼使用new操作符分配了一個包含10個int類型元素的數組,並且將0~9存儲到數組中,最後使用delete操作符釋放數組所佔的內存空間。
三、使用new操作符分配自定義類型的對象
//使用new操作符分配自定義類型的對象 class Person { public: string name; int age; }; Person *p = new Person; //分配一個Person類型的對象 p->name = "張三"; p->age = 20; delete p; //釋放內存空間
上述代碼使用new操作符分配了一個Person類型的對象,並且將姓名和年齡存儲到該對象中,最後使用delete操作符釋放內存空間。
四、使用new操作符分配自定義類型的數組
//使用new操作符分配自定義類型的數組 class Person { public: string name; int age; }; Person *p = new Person[10]; //分配一個包含10個Person類型元素的數組 for(int i=0;iname = "張三"; (p+i)->age = i; } delete []p; //釋放數組所佔的內存空間
上述代碼使用new操作符分配了一個包含10個Person類型元素的數組,並且將姓名都設置為張三,年齡依次從0~9,最後使用delete操作符釋放數組所佔的內存空間。
五、總結
在C++中,使用new操作符可以動態分配內存,可以分配基本數據類型,數組以及自定義類型的對象和數組,並且使用delete操作符可以釋放動態分配的內存,以提高程序的效率。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/253832.html