摘要:
C++ 常见内存错误 野指针(Dangling Pointer) 指针指向已经被释放或无效的内存。 int* p = new int(10); delete p; *p = 5; // 使用了悬空指针,未定义行为 悬挂引用(Dangling Reference) 引用指向已经销毁的对象。 int& 阅读全文
posted @ 2025-05-27 23:43
_Sylvan
阅读(54)
评论(0)
推荐(0)
摘要:
内存池 内存池(Memory Pool)是一种提前分配一大块内存、并在之后反复复用这块内存来分配/释放对象的技术,目的是为了提高性能、降低内存碎片、避免频繁调用 malloc/new 等昂贵操作。 为什么要用内存池 标准的 new / malloc 调用: 都涉及系统调用(如 sbrk, mmap) 阅读全文
posted @ 2025-05-27 23:27
_Sylvan
阅读(76)
评论(0)
推荐(0)
摘要:
对比 malloc-free 与 new-delete malloc/free 与 new/delete 是 C++ 中两种动态内存分配和释放的机制,分别源自 C 和 C++ 语言。它们在底层实现、用途、语义和使用场景上有显著差异。 基本语法和用途 功能 malloc / free new / de 阅读全文
posted @ 2025-05-27 23:21
_Sylvan
阅读(35)
评论(0)
推荐(0)
摘要:
malloc-free 内存分配原理 malloc 通过 arena 管理堆,每次分配先在 bins 中找合适的空闲 chunk,找不到就从 top chunk 切割或用 mmap; free 则把 chunk 放回 bins,必要时与相邻空闲块合并,但通常不会立即归还操作系统。 基本概念 操作 描 阅读全文
posted @ 2025-05-27 23:06
_Sylvan
阅读(102)
评论(0)
推荐(0)
摘要:
内存映射 内存映射(Memory Mapping)是一种操作系统提供的机制,它允许把文件或设备中的内容映射到进程的虚拟内存空间中,从而使得程序可以像访问普通内存一样访问文件内容或硬件资源。这种机制广泛用于文件 IO 优化、进程间通信、设备访问等场景。 基本概念 内存映射是指:把一个文件或设备的内容直 阅读全文
posted @ 2025-05-27 20:09
_Sylvan
阅读(213)
评论(0)
推荐(0)
摘要:
RAII RAII(Resource Acquisition Is Initialization)是 C++ 中一项非常重要的资源管理思想。它是 C++ 语言设计中自动管理资源的一种惯用方法,广泛应用于标准库(如 std::vector, std::unique_ptr, std::lock_gua 阅读全文
posted @ 2025-05-27 16:04
_Sylvan
阅读(55)
评论(0)
推荐(0)
摘要:
C++ 复杂类型声明的阅读 在 C++ 中,复杂类型声明(如指针、数组、函数指针、引用等混合嵌套的声明)确实难读。理解这类声明的核心技巧是掌握“从标识符出发,遵循优先级规则,使用右左规则(Right-Left Rule)”进行分析。 右左法则 从变量名(标识符)开始,按照以下优先级顺序分析: 1. 阅读全文
posted @ 2025-05-27 15:37
_Sylvan
阅读(32)
评论(0)
推荐(0)
摘要:
C++ 程序内存布局 进程地址空间是指进程能够访问的虚拟地址范围。在大多数操作系统中(如 Linux、Windows 等),进程地址空间被划分为两个主要部分: 用户态(用户区) 内核态(内核区) 以 32 位 Linux 为例(3G/1G 分布): 区域 地址范围 所属空间 说明 用户区 0x000 阅读全文
posted @ 2025-05-27 11:49
_Sylvan
阅读(52)
评论(0)
推荐(0)
摘要:
C++虚函数表 C++ 中的虚函数表(vtable)是实现运行时多态性(polymorphism)的核心机制。它是编译器在支持虚函数时使用的一种内部技术。 什么是虚函数表 虚函数表(vtable)是一个指针数组,每个数组元素都是指向某个类的虚函数实现的指针。这个表是由编译器在编译时生成的,并用于支持 阅读全文
posted @ 2025-05-27 02:39
_Sylvan
阅读(67)
评论(0)
推荐(0)
摘要:
this 指针 在 C++ 中,每个非静态成员函数(普通成员函数)都有一个隐式的指针参数 this,它指向调用该成员函数的对象本身。 class Person { public: string name; void setName(string name) { this->name = name; 阅读全文
posted @ 2025-05-27 01:57
_Sylvan
阅读(31)
评论(0)
推荐(0)
摘要:
C++ 深拷贝浅拷贝 在 C++ 中,深拷贝(deep copy)和浅拷贝(shallow copy)是对象复制时的两个重要概念,尤其在类中含有指针成员时特别关键。 浅拷贝 拷贝的是指针的值,也就是让两个对象共享同一块内存。 如果一个对象释放了内存,另一个对象指针就成了悬垂指针(野指针) -> 会出 阅读全文
posted @ 2025-05-27 01:39
_Sylvan
阅读(21)
评论(0)
推荐(0)

浙公网安备 33010602011771号