对比malloc-free与new-delete
malloc/free 仅分配与释放内存,需手动构造对象;new/delete 除内存管理外还调用构造与析构,更适合 C++ 面向对象编程。
malloc/free 仅分配与释放内存,需手动构造对象;new/delete 除内存管理外还调用构造与析构,更适合 C++ 面向对象编程。
malloc 从堆中切割或复用空闲块分配内存,free 释放块并放入 bins 管理,可能合并相邻块,但通常不立即归还系统。
内存映射 内存映射(Memory Mapping)是一种操作系统提供的机制,它允许把文件或设备中的内容映射到进程的虚拟内存空间中,从而使得程序可以像访问普通内存一样访问文件内容或硬件资源。这种机制广泛用于文件 IO 优化、进程间通信、设备访问等场景。 基本概念 内存映射是指:把一个文件或设备的内容直接映射到进程的虚拟地址空间,之后程序可以像操作内存一样,直接读写文件内容。 在 Lin...
RAII(资源获取即初始化)是一种 C++ 编程惯用法:对象生命周期管理资源,构造时获取,析构时释放,实现自动资源管理与异常安全。
从右往左读类型,结合指针、引用和数组符号,逐步理解复杂声明含义。
代码区存放程序代码,数据区存全局变量,堆区动态分配内存,栈区存函数局部变量。
虚函数表存指向虚函数的指针,实现运行时多态和动态绑定机制。
成员函数隐式指针,指向调用对象,用于访问对象自身成员。
浅拷贝复制指针地址,资源共享风险;深拷贝复制资源内容,避免共享冲突。
成员按声明顺序初始化,构造后析构顺序相反,保证资源正确管理。