c++ 中的 new 和 delete

#include <iostream>

//在堆区创建的变量由程序员管理释放(通过new ,delete)

//1 new的基本语法
int *func()
{
    //在堆区创建整形数据
    //new返回的是该数据类型的指针
    int *p = new int(10);
    return p;
}

void test01()
{
    int *p = func();
    std::cout<<*p<<std::endl;
    //堆区的数据由程序员管理开辟,程序员管理释放
    //如果想释放堆区的数据,利用关键字delete
    delete p;
    std::cout<<*p<<std::endl;//内存已经被释放,再次访问会出错
}

//2 在堆区利用new开辟数组
void test02()
{
    //创建10个整形数据的数组,在堆区
    int *arr = new int[10];//10 代表有10个元素

    for(int i = 0; i < 10; i++)
    {
        arr[i] = i + 100;
    }

    for(int i = 0; i < 10; i++)
    {
        std::cout<<arr[i]<<std::endl;
    }
    //释放堆区数组
    //释放数组的时候,要加[]才可以
    delete[] arr;
}


int main() {
    test01();
    test02();
}
发布了39 篇原创文章 · 获赞 8 · 访问量 7944

猜你喜欢

转载自blog.csdn.net/weixin_40512640/article/details/103477186