new操作符

说明

C++中利用new操作符在堆区开辟数据

堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符delete

语法:new 数据类型

作用:利用new创建的数据,会返回该数据对应的类型的指针

示例代码(new基本语法)

# include <iostream>
using namespace std;

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

}

void test01()
{
    int* p = func();
    cout << *p << endl;             //堆区的数据,由程序员管理开辟,程序员管理释放

    delete p;                       //如果想释放堆区的数据,利用关键词delete
    cout << *p << endl;             //数据已经被释放,再次访问就是非法操作
}

int main()
{

    test01();
    system("pause");
    return 0;

}

示例代码(开辟数组)

# include <iostream>
using namespace std;

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

}

void test01()
{
    int* p = func();
    cout << *p << endl;             //堆区的数据,由程序员管理开辟,程序员管理释放

    delete p;                       //如果想释放堆区的数据,利用关键词delete
    cout << *p << endl;             //数据已经被释放,再次访问就是非法操作
}

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

    for (int i = 0; i < 10; i++)
    {
        arr[i] = i + 100;           //给10个元素赋值 100~109
    }

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

    delete[] arr;                   //释放堆区数组,释放数组的时候,要加[]才可以
}

int main()
{

    //test01();
    test02();
    system("pause");
    return 0;

}

易碎

易碎

我看到的今夜的星空,是几万年前的光,我眼中的你是此时的你!

0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注

网站ICP备案皖ICP备2024045222号-1