C++ new运算符的使用

new操作符

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

1.基本语法

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

void test01()
{
     int *p=func();
     cout<<*p<<endl;///正常输出
     cout<<*p<<endl;///正常输出
     cout<<*p<<endl;//正常输出
     //堆区的数据由程序员管理开辟释放
     //释放利用关键字delete
     delete p;
     cout<<*p<<endl;//异常:读取访问权限错误, 
    内存已经被释放,再次访问就是非法操作,报错
}
  int main()
{
    test01();
    return 0;
 }

2.在堆区利用new开辟数组

void test02()
{
    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()
{
    test02();
    return 0;
 }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容