深入理解C++的new和delete

一、new 操作符介绍

在 C++ 中,new 和 delete 是用于动态内存管理的操作符。它们允许程序在运行时分配和释放内存,这对需要灵活控制内存生命周期的场景非常重要。new 用于在堆(heap)上动态分配内存,并调用构造函数(如果是对象)。
语法:

类型* 指针 = new 类型;
类型* 指针 = new 类型(初始化值);
类型* 数组指针 = new 类型[数组大小];

功能:

1.动态分配内存:new 会在堆上分配内存。
2.调用构造函数(如果适用):为对象类型调用对应的构造函数。
3.返回指针:返回分配的内存块的指针。

示例:

// 分配单个整数
int* pInt = new int(10); // 分配并初始化为10
std::cout << *pInt << std::endl;

// 分配数组
int* pArray = new int[5]; // 分配5个整数的数组
for (int i = 0; i < 5; ++i) {
   
    pArray[i] = i + 1;
    std::cout << pArray[i] << " ";
}
std::cout << std::endl;

二、new的多种操作方式

new 操作符有多种变体和用法,主要包括以下几种:
1. 普通 new
用于分配单个对象的内存并调用构造函数。

int* p = new int;         // 分配未初始化的整数内存
int* pInit = new int(10); // 分配并初始化为10

2.定位 new(Placement New)
允许在特定的内存地址上构造对象。

#include <iostream>
#include <new> // 包含 placement new

int main() {
   
    char buffer[sizeof(int)];    // 提供内存空间
    int* p =<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值