20. new关键字 📅 发布时间:2026/7/10 10:36:41 👁️ 浏览次数: 1.new 关键字的核心作用2.new的常见用法3.new vs malloc1.new 关键字new是c的动态内存分配运算符,用于在程序运行时从堆内存区域分配指定大小的内存空间 a.对于基本数据类型(int,double)仅分配内存 b.对于自定义结构体/结构体对象,会自动调用构造函数初始化对象 c.最终返回指向该内存空间的指针2.new的常见用法1).为基本数据类型分配内存#include iostreamusingnamespacestd;intmain(){// 1. 分配单个int类型内存未初始化int*p1newint;*p110;// 手动赋值cout*p1endl;// 输出10// 2. 分配内存并直接初始化int*p2newint(20);// 括号内是初始化值cout*p2endl;// 输出20// 必须用delete释放内存否则会内存泄漏deletep1;deletep2;p1nullptr;// 建议置空避免野指针p2nullptr;return0;}2).为自定义类/结构体分配内存(分配内存)#include iostream#include stringusingnamespacestd;classPerson{public:// 构造函数Person(stringname,intage):m_name(name),m_age(age){coutPerson构造函数被调用endl;}~Person(){coutPerson析构函数被调用endl;}voidshowInfo(){cout姓名m_name年龄m_ageendl;}private:stringm_name;intm_age;};intmain(){// 分配Person对象内存同时调用构造函数初始化Person*pnewPerson(张三,20);p-showInfo();// 输出姓名张三年龄20// delete会先调用析构函数再释放内存deletep;pnullptr;return0;}3).为数组分配内存#include iostreamusingnamespacestd;intmain(){// 分配长度为5的int数组未初始化int*arrnewint[5];// 给数组赋值for(inti0;i5;i){arr[i]i1;coutarr[i] ;// 输出1 2 3 4 5}coutendl;// 分配数组并初始化C11及以上支持int*arr2newint[3]{10,20,30};for(inti0;i3;i){coutarr2[i] ;// 输出10 20 30}coutendl;// 释放数组必须用delete[]不能用deletedelete[]arr;delete[]arr2;arrnullptr;arr2nullptr;return0;}4).避免new分配失败的异常(nothrow版本)默认情况下,若new分配内存失败(如堆内存不足),会抛出std::bad_alloc异常;如果不想抛 异常,可使用nothrow版本#include iostream#include new// 必须包含此头文件usingnamespacestd;intmain(){// nothrow版本分配失败返回nullptr不抛异常int*pnew(nothrow)int[1000000000];// 超大数组模拟分配失败if(pnullptr){cout内存分配失败endl;}else{delete[]p;}return0;}3.new vs malloc
Docker Desktop 1. 他是什么 可以把 Docker Desktop 想象成一个在个人电脑上创建和管理“标准化软件集装箱”的工具。在现实生活中,集装箱无论用哪艘船运输、用哪种卡车搬运,里面的货物都不会受影响,也无需关心外面的环境。Docker Desktop 就是这样一个为你… 2026/7/9 5:35:22
Python Pydantic库深度解析 Pydantic是一个在Python生态中广泛使用的库,特别在Flask开发中,它帮助处理数据验证和配置管理。下面从五个方面详细讲解Pydantic。1. 它是什么Pydantic是一个基于Python类型注解的库,用于数据验证和设置管理。它允许你通过定义类来描述数据的… 2026/5/17 3:27:18
python asyncpg库,深度解析 在Flask应用开发中,当需要高效处理大量数据库查询时,asyncpg是一个专为PostgreSQL设计的强大异步驱动。下面将从五个方面对其进行说明。 1. asyncpg是什么? asyncpg是一个专门为Python的asyncio异步框架和PostgreSQL数据库打造的客户端库。… 2026/5/17 3:27:18
Unity 2023.2打包PICO4 APK:三大高频错误解析与实战解决方案 1. 项目概述:PICO4开发与Unity打包的“最后一公里”如果你正在为PICO4开发VR应用,那么从Unity编辑器里那个运行流畅的场景,到最终能在头显里安装运行的APK文件,中间往往横亘着一道名为“打包”的鸿沟。这感觉就像精心组装了一台精… 2026/7/11 3:49:59
Re-TRAC框架:用结构化状态表示重塑LLM搜索智能 1. 这不是又一个“更大即更好”的故事,而是对搜索智能本质的重新定义你有没有试过让一个大模型帮你查点东西?比如“2024年诺贝尔物理学奖得主在获奖前最被引用的三篇论文是什么?”——问题一抛出去,模型立刻开始调用搜索工具&… 2026/7/11 3:47:58
一文读懂MFi认证完整申请流程、周期与核心难点 对于苹果配件生产企业而言,MFi认证是产品上市、出海、渠道入驻的必备资质。但很多企业对认证流程一无所知,容易出现申报报错、测试驳回、周期延误、资质失效等问题。 MFi认证不同于普通检测认证,包含会员准入、芯片采购、产品测试、官方审核… 2026/7/11 3:47:58
LV3296与STM32F031C6硬件设计及通信优化实践 1. LV3296与STM32F031C6的硬件架构解析LV3296作为一款工业级二维条码扫描模块,其核心优势在于集成了光学传感器、图像处理芯片和条码解码算法于一体。模块采用3.3V供电,工作电流典型值为120mA,通过8引脚排针引出UART和GPIO接口。在实际项目中… 2026/7/11 3:45:57
8086+8253+8255 Proteus 8.6 电子秒表:0.1秒精度与3按键中断控制实现 808682538255 Proteus 8.6 电子秒表:0.1秒精度与3按键中断控制实现在微机原理与接口技术的学习中,电子秒表是一个经典的综合实验项目。本文将详细介绍如何在Proteus 8.6仿真环境中,使用8086微处理器配合8253定时器和8255并行接口芯片… 2026/7/11 3:45:57
R语言 3种饼图方案对比:基础pie、ggplot2与ggforce的性能与适用场景 R语言三大饼图方案深度评测:从基础pie到ggforce的实战指南引言:为什么需要多种饼图方案?在数据可视化领域,饼图(Pie Chart)始终是一个充满争议但又不可或缺的存在。作为比例展示的经典形式,饼图… 2026/7/11 3:39:55
5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 [特殊字符] 5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 🎬 【免费下载链接】zimuku_for_kodi Kodi 插件,用于从「字幕库」网站下载字幕 项目地址: https://gitcode.com/gh_mirrors/zi/zimuku_for_kodi 还记得那个深夜吗?你刚下载… 2026/7/11 0:00:11
工业信号干扰处理与FOD4216光耦应用实战 1. 工业环境中的信号干扰挑战在工业自动化领域,信号采集的准确性直接关系到整个控制系统的可靠性。典型的工业现场充斥着各种干扰源:大功率电机启停产生的电磁干扰、变频器工作产生的高频噪声、继电器触点火花放电,以及长距离传输引入的共模干… 2026/7/11 0:00:11
OpenHarmony 完整项目工程整合规范 + 模块化分层架构(API23+ 标准企业级结构) 摘要前面系列教程覆盖了 ArkUI 组件、路由、生命周期、本地存储、网络请求、Ability 底层全套基础能力,本篇统一梳理标准工程目录分层、模块化拆分、代码复用规范、全局工具统一管理、项目打包权限配置、常见工程报错统一解决方案,形成可直接用于课程设计… 2026/7/11 0:00:11
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/8 20:15:17
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/8 14:25:08