首页
文章列表
标签墙
返回找工具啦
内存管理
共 46 篇文章
C++ 智能指针std::unique_ptr独占所有权实现
2026-04-09 11:15:57
C++ 智能指针std::uniqueptr独占所有权实现 理解 智能指针是C++管理内存的重要工具,而std::uniqueptr提供了独占所有权语义,确保资源安全释放。 1. 认识std::uniqueptr std::uniqueptr是C++11引入的智能指针,它实现了独占所有权模式。掌握
C++
智能指针
unique_ptr
36
0
C++ STL 容器:vector、map、set 的基本操作
2026-04-07 06:32:36
1. 引入标准库头文件 include <vector 与 include <iostream,启用动态数组与基础输入输出功能。 2. 声明容器实例 vector<int data;,创建一个初始为空的整数序列(底层为连续内存块,长度随元素增加自动翻倍扩容)。 3. 尾部追加调用 data.push
C++编程
STL容器
动态数组
47
0
C++ 移动语义在返回值优化中的应用
2026-04-07 06:12:40
C++ 移动语义在返回值优化中的应用 编写高效的 C++ 函数返回逻辑,核心在于让编译器自动消除多余的内存拷贝,并在无法消除时以最低成本移交数据所有权。按照以下步骤,逐步配置代码结构,确保移动语义与返回值优化协同工作。 阶段一:厘清优化触发条件 1. 理解 返回值优化的底层逻辑。该机制是编译器在后台
C++
移动语义
返回值优化
42
0
C++ 智能指针:unique_ptr、shared_ptr、weak_ptr
2026-04-07 05:08:33
C++ 智能指针:uniqueptr、sharedptr、weakptr 引入 标准库头文件 include <memory。配置 编译器编译标志启用 C++11 或更高标准(例如 GCC/Clang 使用 std=c++11,MSVC 使用 /std:c++14),确保基础语法可用。 阶段一:依据
智能指针
内存管理
引用计数
44
0
Swift 内存管理:ARC 与 weak 引用
2026-04-07 02:10:21
Swift 内存管理:ARC 与 weak 引用 在 Swift 中编写应用时,系统会自动处理绝大部分内存分配与回收工作,这一机制被称为 ARC(自动引用计数)。理解 ARC 与 weak(弱引用)的配合逻辑,能彻底避免应用运行时的“内存泄漏”问题,让软件运行更流畅、更稳定。 阶段一:理解 ARC
内存管理
自动引用计数
弱引用
48
0
C 内存泄漏:动态内存未释放
2026-04-06 18:09:24
C 内存泄漏:动态内存未释放 动态内存管理是 C 语言编程的核心能力之一。当程序在堆上申请了内存却未能正确释放,就会发生内存泄漏。长期运行的程序若存在泄漏,会逐渐耗尽系统资源,导致程序崩溃或系统卡死。 以下是排查、修复及预防内存泄漏的实操指南。 1. 理解泄漏原理 内存泄漏的本质是“失去了对内存地址
C语言
内存泄漏
动态内存
72
0
C++ 内存问题:内存泄漏与野指针
2026-04-06 04:41:48
C++ 内存问题:内存泄漏与野指针 C++ 给了开发者直接操作内存的能力,但也把双刃剑交到了你手里。内存泄漏和野指针是最常见也最棘手的两个问题,它们像定时炸弹一样潜伏在代码中,随时可能导致程序崩溃或安全漏洞。这篇文章会教你识别、预防和解决这些问题。 第一章:认识内存泄漏 什么是内存泄漏 内存泄漏是指
C++内存
内存泄漏
野指针
41
0
JavaScript 内存问题:内存泄漏与闭包
2026-04-05 19:15:59
JavaScript 内存问题:内存泄漏与闭包 在日常开发中,你是否遇到过页面越用越卡、浏览器内存持续飙升的情况?这些问题很可能与 JavaScript 的内存泄漏有关。本文将深入探讨内存泄漏的根本原因,特别关注闭包这一常用特性如何成为内存问题的隐形杀手。 理解 JavaScript 的内存管理 J
JavaScript内存泄漏
闭包
内存管理
46
0
C++ 智能指针问题:循环引用导致内存泄漏
2026-04-05 18:29:43
C++ 智能指针问题:循环引用导致内存泄漏 在现代 C++ 开发中,智能指针是管理动态内存的核心工具。它能自动释放内存,避免手动 new/delete 带来的隐患。然而,即使使用智能指针,内存泄漏的风险依然存在——最常见的原因就是循环引用。 本文将深入剖析循环引用的形成原因、内存泄漏的底层机制,以及
C++智能指针
循环引用
内存泄漏
40
0
C 语言函数:参数传递与返回值
2026-04-05 08:20:56
C 语言函数:参数传递与返回值 函数是 C 语言的基石。掌握参数的传递机制和返回值的处理方式,是写出健壮代码的关键一步。本文将深入剖析 C 函数的核心机制,帮助你理解底层原理并规避常见陷阱。 返回值:函数如何"反馈"结果 C 语言通过 return 语句将计算结果传递回调用者。返回值的类型必须在函数
C语言函数
参数传递
返回值
32
0
C++ 智能指针std::weak_ptr解决观察者模式
2026-04-04 18:52:56
C++ 智能指针 std::weakptr 解决观察者模式 观察者模式是软件开发中最常用的行为型设计模式之一,它定义了一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都能收到通知并自动更新。然而,在 C++ 中实现观察者模式时,内存管理往往是最棘手的问题。如果处理不当,会导致悬垂指
C++智能指针
观察者模式
weak_ptr
53
0
C++ 智能指针:unique_ptr 与 shared_ptr 的区别
2026-04-04 17:32:48
C++ 智能指针:uniqueptr 与 sharedptr 的区别 在 C++ 开发中,内存管理是每位开发者必须面对的核心问题。手动管理 new 和 delete 容易引发内存泄漏、野指针等问题,而智能指针作为 RAII(资源获取即初始化)思想的最佳实践,能够自动管理对象的生命周期。本文将深入探讨
C++智能指针
unique_ptr
shared_ptr
38
0
C++ STL 问题:容器使用不当导致的错误
2026-04-04 17:27:05
C++ STL 问题:容器使用不当导致的错误 C++ 标准模板库(STL)为开发者提供了强大且灵活的数据结构工具,但容器使用不当往往会引发隐蔽且危险的错误。这些错误可能在开发阶段难以察觉,却在生产环境中导致程序崩溃、数据损坏或难以追踪的异常行为。本文将深入剖析 STL 容器使用中的典型错误模式,并提
C++STL
迭代器失效
vector容器
39
0
C 语言动态内存:realloc() 函数的扩容机制
2026-04-03 22:43:15
C 语言动态内存:realloc 函数的扩容机制 在 C 语言中,当你使用 malloc 或 calloc 分配了一块堆内存后,有时会发现空间不够用。此时,不要手动复制数据并重新分配内存,而是应优先考虑使用 realloc 函数——它能自动完成“扩容+数据迁移”的全过程。 realloc 的基本用法
C语言
动态内存
realloc
43
0
Lua 垃圾回收:collectgarbage() 函数
2026-04-03 21:44:15
Lua 垃圾回收:collectgarbage 函数 Lua 使用自动内存管理,通过垃圾回收(Garbage Collection, GC)机制释放不再使用的对象。你无需手动释放内存,但可通过内置函数 collectgarbage 主动干预回收过程,优化程序性能或调试内存问题。 什么是 collec
Lua
垃圾回收
collectgarbage
45
0
C 语言内存管理:malloc() 与 free() 的正确使用
2026-04-03 12:22:14
C 语言内存管理:malloc 与 free 的正确使用 C 语言不提供自动内存回收机制,程序员必须手动申请和释放动态内存。malloc 和 free 是最基础、最关键的两个函数。用错它们会导致程序崩溃、内存泄漏或安全漏洞。 理解动态内存的基本规则 动态内存是指程序运行时从堆(heap)中临时借用的
C语言
内存管理
malloc
72
0
Go语言中切片扩容机制的底层原理分析
2026-04-03 07:48:25
Go语言中切片扩容机制的底层原理分析 Go语言中的切片(slice)是对数组的封装,提供了动态、灵活的序列操作能力。但很多人不清楚:当你向一个容量不足的切片追加元素时,Go是如何自动“扩容”的?理解这一机制,不仅能写出更高效的代码,还能避免不必要的内存浪费和性能陷阱。 切片的基本结构 在深入扩容逻辑
Go语言
切片扩容
内存管理
34
0
Swift 结构体:struct 与类的区别
2026-04-02 23:45:21
Swift 结构体:struct 与类的区别 在 Swift 中,struct(结构体)和 class(类)都能用来定义自定义数据类型,但它们在内存管理、行为特性上存在根本差异。选择 struct 还是 class,直接影响程序的性能、安全性和可维护性。本文通过具体场景和代码对比,帮你快速掌握两者的
Swift
结构体
类
51
0
Docker 性能问题:容器资源限制与优化
2026-04-02 22:14:26
Docker 性能问题:容器资源限制与优化 Docker 容器默认可以无限制地使用宿主机的 CPU、内存等资源,这在多容器共存或生产环境中极易引发资源争抢,导致系统不稳定甚至服务崩溃。通过合理设置资源限制并配合监控手段,可显著提升容器运行效率和系统整体稳定性。 识别资源瓶颈 观察容器当前资源使用情况
Docker
容器优化
资源限制
58
0
C++ 析构函数:~ClassName() 的作用
2026-04-02 05:03:29
C++ 析构函数:ClassName 的作用 在 C++ 中,当你创建一个类的对象时,系统会自动调用构造函数来初始化它。同样地,当这个对象的生命周期结束(比如离开作用域、被显式删除或程序退出)时,系统也会自动调用一个特殊函数——析构函数——来清理资源。这个函数的名字固定为 ClassName,其中
C++析构函数
内存管理
资源释放
40
0
上一页
1
2
3
下一页