news 2026/3/12 2:41:12

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/3/9 18:19:54

python pydantic-settings库,深度解析

1. pydantic-settings 是什么可以将 pydantic-settings 看作一个专门管理应用配置的“智能收纳盒”。就像家里水电、网络有不同的开关和设置一样&#xff0c;一个 Flask 应用也需要数据库地址、API 密钥、调试模式等配置。这个库基于 Pydantic 数据验证库构建&#xff0c;除了能…

作者头像 李华
网站建设 2026/3/6 16:57:55

再论自然数全加和-质数的规律

再说质数,根据虚数单位的定义, 它是一个周期的描述,这个周期写做0,但实际上是任意数。假定虚数单位此处为正整数,那么0这个周期就可以是对应的正整数。因为虚数单位可取值为无限多,所以这个周期可取值也是无限多个。我们要求证明的是形如, 的质数 有无限多个。尝试反证法…

作者头像 李华
网站建设 2026/3/10 23:24:00

干货来了:专科生必备的降AI率软件 —— 千笔·降AIGC助手

在AI技术迅速渗透到学术写作领域的今天&#xff0c;越来越多的专科生开始借助AI工具辅助完成论文撰写。然而&#xff0c;随着知网、维普、万方等查重系统不断升级算法&#xff0c;对AI生成内容的识别也愈发严格&#xff0c;论文中的“AI率超标”问题逐渐成为影响毕业和成绩的关…

作者头像 李华
网站建设 2026/2/28 14:30:16

六零导航页2.1版本最新修复完美版本

六零导航页2.1版本最新修复完美版本 访问http://域名/install 按提示配置数据库进行安装 后台地址&#xff1a;http://域名/admin 账号密码&#xff1a;admin/123456 源码下载&#xff1a; https://download.csdn.net/download/m0_61505785/92643317?spm1001.2014.3001.550…

作者头像 李华
网站建设 2026/3/5 5:41:28

导师严选!自考必备的AI论文网站 —— 千笔·专业学术智能体

你是否也曾为论文选题发愁&#xff0c;面对空白文档无从下笔&#xff1f;是否在反复修改中感到力不从心&#xff0c;却始终达不到理想效果&#xff1f;论文写作的每一步都充满挑战&#xff0c;尤其是自考路上&#xff0c;时间紧、任务重&#xff0c;稍有不慎就可能影响毕业。而…

作者头像 李华
网站建设 2026/3/9 20:42:28

计算机毕业设计springboot音乐推荐系统 基于协同过滤算法的个性化音乐推送平台开发 Spring Boot驱动的智能化歌曲推荐服务平台构建

计算机毕业设计springboot音乐推荐系统4ds179 &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 随着互联网技术的飞速发展和数字化娱乐的普及&#xff0c;音乐已成为人们日常生活…

作者头像 李华