记录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会调用构造函数和析构函数用于初始化和销毁对象
相关推荐
Rabitebla2 小时前
【Linux 底层原理】进程(十):进程等待详解---从僵尸进程到 wait、waitpid 与 status
linux·c++·笔记·学习·visual studio
麦麦麦当劳大王3 小时前
【油猴脚本】Boss直聘 岗位职责复制
开发语言·前端·javascript
starzy19903 小时前
深入理解Scala Map:从实现原理到工程实践
开发语言·后端·scala
只睡四小时4 小时前
Three.js Sub-tick:漏判 60.7%→0
开发语言·javascript·性能优化·ecmascript·游戏开发·three.js·碰撞检测
码农小河664 小时前
基于SSM+JSP的高校专业信息管理系统【附源码+数据库】
java·开发语言·数据库
西西弗Sisyphus4 小时前
C++ 超时互斥锁(Timed Mutex):std::timed_mutex 与 std::unique_lock
c++
东鹏特饮6 小时前
系统运维(传统/通用运维)面试题
开发语言·php
今天要早睡_7 小时前
C++01_入门基础复习
开发语言·c++
黑马程序员毕设7 小时前
基于 Java 的餐饮点餐系统设计与应用报告
java·开发语言
1-1=09 小时前
C# 委托与事件
开发语言·c#