记录C++ 3

C++调用C语言编译后的函数为什么要加extern"C"声明

C++有函数重载,调用函数时底层不是函数表面的名字,而C语言里面函数名在底层是一样的。

new和delete

new用于申请内存并初始化对象
delete用于释放内存并销毁对象
cpp 复制代码
#include <iostream>

int main()
{
    int *p=new int(10);
    cout <<*p <<endl;
    delete p;
    p=nullptr;

    int arr= new int[5]{1,2,3,4,5}
    cout <<arr[0] <<endl;
    cout <<arr[1] <<endl;
    cout <<arr[2] <<endl;
    delete []arr;
    arr=nullptr;
    return 0;
    
}
    
    

new和delete与malloc和free的区别

都是动态管理内存的入口,malloc和free需要手动计算类型大小返回void*,new和delete可以自己计算类型大小根据类型返回相应类型的指针
malloc和free只负责分配释放空间,new和delete会调用构造函数和析构函数用于初始化和销毁对象
相关推荐
sakiko_13 小时前
OC基础语法(与Swift对比)-1
开发语言·ios·objective-c·swift
迷迭香yy13 小时前
基金档案数据工程实战从收入分析到持仓穿透的Python解析 IG50免费开源股票数据API接口
开发语言·python
晊晌_h13 小时前
嵌入式从0到精通——线程
java·开发语言·jvm
一木 之林14 小时前
五、C++ 新特性、关键字与编译原理(进阶)(二)
java·开发语言·c++
OPEN-F14 小时前
C++11/14新特性精讲:移动语义与智能指针实战
开发语言·c++·算法
小灰灰搞电子14 小时前
Rust+Slint 实现动态轮播图源码分享,支持动态删除、添加
开发语言·rust·slint·动态轮播图
前端 贾公子14 小时前
第09章:上下文与记忆 (6)
开发语言·前端·python
闭月之泪舞14 小时前
C++编程学习
c++·学习
sunburn-14 小时前
Java堆(Heap)详解与实战教学
java·开发语言·数据结构·ide·算法
jayson.h15 小时前
PDF 合并+添加页码 相关库、类、函数
开发语言·前端·python