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

原文链接: https://www.cnblogs.com/spring-hailong/p/6183322.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/245838

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月14日 上午1:07
下一篇 2023年2月14日 上午1:07

相关推荐