在c++中new是用來申請一塊空間,值得注意的是:平時咱們使用的聲明變量申請空間都是在「棧」中,這些空間不須要程序員來管理,在使用完以後會自動釋放這些空間;而使用new來申請一塊空間,這塊空間在「堆」上開闢,使用完後必須由程序員手動釋放,不然嚴重時候會形成"內存泄漏"(這是指只要程序在運行,不斷的開闢空間而不釋放,空間不斷被佔用使可用空間愈來愈少,最終致使內存泄漏!若是程序退出。系統會自動回收這部分空間,可是注意,這是系統完成而不是程序完成)。ios
因此一個好的使用習慣是使用完new開闢的空間後應該手動釋放(對於c語言來講,malloc也是在「堆」上開闢空間)。c++
補充:c語言中malloc申請空間的同時不能初始化,經過free釋放。c++中new申請空間的同時能夠初始化,經過delete釋放。程序員
#include<iostream> using std::cout; using std::endl; using std::string; class MyClass{ public: struct Student{ int sno;//學號 string name;//姓名 int grade;//成績 }; }; void main(void) { //主要體會new的用法 //1.建立類的對象 MyClass *myClass = new MyClass;//myClass指向申請空間的首地址 MyClass::Student student;//建立結構體對象 student.sno = 1; student.name = "張三"; student.grade = 90; //輸出 delete myClass;//安全考慮new申請的空間必須釋放 }