c++ new的用法

在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申請的空間必須釋放
}
相關文章
相關標籤/搜索