在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申请的空间必须释放 }