zoukankan      html  css  js  c++  java
  • 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申请的空间必须释放
    }
  • 相关阅读:
    TSQL Beginners Challenge 1
    SQL拾遗
    简易实体生成方式
    CTE-递归[2]
    编号处理
    行列转换/横转竖
    OUTPUT、Merge语句的使用
    关于SQL IO的一些资料
    对左值(lvalue)和右值(rvalue)的两种理解方式
    跨平台判断64位和32位开发的一些宏定义
  • 原文地址:https://www.cnblogs.com/spring-hailong/p/6183322.html
Copyright © 2011-2022 走看看