zoukankan      html  css  js  c++  java
  • C++

    c++中利用new操作符再堆区开辟数据。
    堆区开辟的数据是手动开辟(new)和释放(delete)的
    语法:new 数据类型
    利用new创建的数据,会返回该数据对应的类型指针 

    存在的问题就是:

    我是用clion写的,delete释放之后的那一块内存仍然输出,允许访问,

    难道还是编译器问题,

    总不能做的这么烂吧!!!

    #include <iostream>
    using namespace std;
    
    int * w()
    {
        //在堆区创建整型数据
        //new返回的是 该数据类型的指针
        int * p=new int(10);
        //在堆区创建数组
        int* arr=new int[10];
        return p;
    }
    
    void ww()
    {
        int * p=w();
        cout<<*p<<endl; //10
    
        //会发现还是会输出一个10
        //说明堆区的数据由程序员管理开辟和释放
        //如果想释放堆区的数据,则利用 关键字delete 即可
        //数组用 delete[] arrary
        delete p;
        //cout<<*p<<endl;//这块内存已经被释放,如果再次访问就是非法操作,会报错
        cout<<"****"<<endl;
    }
    
    int main()
    {
        ww();
        return 0;
    }
  • 相关阅读:
    Java:day11
    Java:day10
    Java:day9
    Java:day8
    纯虚函数和抽象类
    C++的虚拟继承
    派生类构造函数、析构函数的定义和调用次序
    c++的继承方式——公有、保护、私有
    操作系统中系统调用的执行过程
    C++的类
  • 原文地址:https://www.cnblogs.com/OFSHK/p/13062575.html
Copyright © 2011-2022 走看看