news 2026/10/13 13:15:27

20. new关键字

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
20. new关键字

1.new 关键字的核心作用

2.new的常见用法

3.new vs malloc


1.new 关键字

new是c++的动态内存分配运算符,用于在程序运行时从堆内存区域分配指定大小的内存空间 a.对于基本数据类型(int,double)仅分配内存 b.对于自定义结构体/结构体对象,会自动调用构造函数初始化对象 c.最终返回指向该内存空间的指针

2.new的常见用法

1).为基本数据类型分配内存
#include <iostream>usingnamespacestd;intmain(){// 1. 分配单个int类型内存(未初始化)int*p1=newint;*p1=10;// 手动赋值cout<<*p1<<endl;// 输出:10// 2. 分配内存并直接初始化int*p2=newint(20);// 括号内是初始化值cout<<*p2<<endl;// 输出:20// 必须用delete释放内存,否则会内存泄漏deletep1;deletep2;p1=nullptr;// 建议置空,避免野指针p2=nullptr;return0;}


2).为自定义类/结构体分配内存(分配内存)
#include <iostream>#include <string>usingnamespacestd;classPerson{public:// 构造函数Person(stringname,intage):m_name(name),m_age(age){cout<<"Person构造函数被调用"<<endl;}~Person(){cout<<"Person析构函数被调用"<<endl;}voidshowInfo(){cout<<"姓名:"<<m_name<<",年龄:"<<m_age<<endl;}private:stringm_name;intm_age;};intmain(){// 分配Person对象内存,同时调用构造函数初始化Person*p=newPerson("张三",20);p->showInfo();// 输出:姓名:张三,年龄:20// delete会先调用析构函数,再释放内存deletep;p=nullptr;return0;}


3).为数组分配内存
#include <iostream>usingnamespacestd;intmain(){// 分配长度为5的int数组(未初始化)int*arr=newint[5];// 给数组赋值for(inti=0;i<5;i++){arr[i]=i+1;cout<<arr[i]<<" ";// 输出:1 2 3 4 5}cout<<endl;// 分配数组并初始化(C++11及以上支持)int*arr2=newint[3]{10,20,30};for(inti=0;i<3;i++){cout<<arr2[i]<<" ";// 输出:10 20 30}cout<<endl;// 释放数组必须用delete[],不能用delete!delete[]arr;delete[]arr2;arr=nullptr;arr2=nullptr;return0;}


4).避免new分配失败的异常(nothrow版本)默认情况下,若new分配内存失败(如堆内存不足),会抛出std::bad_alloc异常;如果不想抛 异常,可使用nothrow版本
#include <iostream>#include <new>// 必须包含此头文件usingnamespacestd;intmain(){// nothrow版本:分配失败返回nullptr,不抛异常int*p=new(nothrow)int[1000000000];// 超大数组,模拟分配失败if(p==nullptr){cout<<"内存分配失败!"<<endl;}else{delete[]p;}return0;}

3.new vs malloc

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/10 21:40:40

导师又让重写?8个降AI率平台深度测评与推荐

在当前学术写作日益依赖AI工具的背景下&#xff0c;论文的AIGC率问题成为众多学生和研究者面临的难题。无论是初稿撰写还是最终定稿&#xff0c;如何有效降低AI痕迹、提升原创性&#xff0c;同时保持文章的逻辑性和语言流畅性&#xff0c;已成为不可忽视的关键环节。随着各大高…

作者头像 李华
网站建设 2026/10/10 23:52:53

别再瞎找了!10个降AI率网站深度测评与推荐,研究生必备

在研究生阶段&#xff0c;论文写作不仅是学术能力的体现&#xff0c;更是对逻辑思维与表达能力的全面考验。然而&#xff0c;随着AI技术的普及&#xff0c;越来越多的学生在论文中使用AI工具辅助写作&#xff0c;导致AIGC率过高&#xff0c;查重系统无法通过&#xff0c;甚至面…

作者头像 李华
网站建设 2026/10/11 7:55:57

App 开发者如何用 XinServer 处理用户体系?

App 开发者如何用 XinServer 处理用户体系&#xff1f; 不知道你有没有过这种经历&#xff1a;一个 App 项目&#xff0c;前端界面都画得差不多了&#xff0c;就差一个用户注册登录、个人中心、后台管理。结果一转头&#xff0c;后端兄弟说&#xff1a;“这得建用户表、角色表…

作者头像 李华
网站建设 2026/10/12 1:53:52

小程序毕设项目推荐-基于 SpringBoot 的社区团购小程序基于springboot+小程序的社区GO团购活动小程序的设计与实现【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/10/13 13:10:10

php python+vue自助考务考试系统_开题报告

目录 系统概述技术架构功能模块创新点实现难点预期成果 项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作 系统概述 自助考务考试系统是一个基于PHP、Python和Vue.js技术栈的综合性在线考试平台&#xff0c…

作者头像 李华