c++ new的用法

在c++中new是用来申请一块空间,值得注意的是:平时我们使用的声明变量申请空间都是在“栈”中,这些空间不需要程序员来管理,在使用完之后会自动释放这些空间;而使用new来申请一块空间,这块空间在“堆”上开辟,使用完后必须由程序员手动释放,否则严重时候会造成"内存泄漏"(这是指只要程序在运行,不断的开辟空间而不释放,空间不断被占用使可用空间越来越少,最终导致内存泄漏!如果程序退出。系统会自动回收这部分空间,但是注意,这是系统完成而不是程序完成)。

所以一个好的使用习惯是使用完new开辟的空间后应该手动释放(对于c语言来说,malloc也是在“堆”上开辟空间)。

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

 

posted @ 2016-12-15 15:03  436酱油哥  阅读(1093)  评论(0编辑  收藏  举报