c++内存管理

内存管理

c++中创建用new和delete

New和delete要相互匹配可以减少错误。

New对delete;

New\[\]对delete;

#include<iostream>

using namespace std;

int main(){

int *p1=new int;

*p1=3;

cout<<*p1<<endl;

int *p2=new int2{1,2};

cout<<p20<<" "<<p21<<endl;

delete p1;

delete\[\]p2;

return 0;

}

new会调用默认构造和析构。

#include<iostream>

using namespace std;

struct A{

A(int a=0,int b=0)

:_a(a),_b(b)

{

cout<<"init "<<a<<" "<<b<<endl;

}

~A(){

cout<<"~A()"<<endl;

}

int _a,_b;

};

捕获异常

int main(){

try{

A *p1=new A1024\*1024\*1024\*10;

delete p1;

}catch(const exception&e){

cout<<e.what()<<endl;

}

return 0;

}

对比c语言的malloc和free;

New会初始化,

Delete会调用析构。

定位new;

创建指针p2指向一个A类大小的空间。

A*p2=(A*) operator new(sizeof(A));

不会初始化

New(p2)A(1);

调用构造函数初始化。

p2->~A()析构。

Operator delete (p2);

释放空间;

一般直接使用new,delete。

相关推荐
vibecoding日记2 小时前
双非如何快速入职字节等大厂大模型?真实案例分析:推理优化和投机解码
算法·求职·大模型工程师
yszaygr21384 小时前
Verilog参数化游程编码RLE模块
算法
望易4 小时前
刚设计的大模型架构-双域耦合认知框架
算法·架构
复杂网络8 小时前
多个 Claude Code 与多个 Codex 协同工作:设计与实现方案
算法
apocelipes1 天前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
HjhIron1 天前
面试常客:字符串算法从入门到进阶
算法·面试
吴佳浩1 天前
DeepSeek DSpark:Confidence-Scheduled Speculative Decoding 技术解析
人工智能·算法·deepseek
触底反弹1 天前
🧠 搞懂 Token,才算真正入门大模型——从分词原理到 Embedding 语义实战
javascript·人工智能·算法
vivo互联网技术1 天前
ICLR 2026 | 基于后验采样的图像恢复方法LearnIR:人脸去阴影、去雾
人工智能·算法·aigc
浮生望1 天前
JS字符串与回文算法:从包装类到双指针的面试进阶之路
javascript·算法