技术栈
踩坑记录
无名猿
6 天前
c++
·
内存管理
·
现代c++
·
踩坑记录
拷贝构造与拷贝赋值:调用时机、深浅拷贝与复制消除
「为什么我这行 T b = a; 调用的是拷贝构造,而 b = a; 却是拷贝赋值?」「为什么函数按值返回明明该拷贝两次,实测却只构造了一次?」拷贝语义是 C++ 里最容易「想当然」、却处处是坑的一块。这篇不堆定义,直接上打印计数器:把拷贝构造的触发时机、深浅拷贝的后患、以及编译器悄悄做的「复制消除(copy elision)」优化,用实跑输出一条条亮出来。
无名猿
7 天前
c++
·
stl
·
标准库
·
踩坑记录
C++ 迭代器五分类与失效场景汇总:一张表避开所有 UB
std::sort(lst.begin(), lst.end()) 编译不过,for (int x : v) { if (...) v.erase(...); } 跑起来会崩 —— 这两个问题的根子是同一件事:迭代器不是一种东西,而是分等级的,而且会在容器改动时失效。这篇文章把「迭代器五分类」和「失效规则」两块拼成一张可查的表,以后遇到迭代器相关的报错直接对表。
无名猿
10 天前
c++
·
现代c++
·
语法基础
·
踩坑记录
C++ lambda 捕获列表详解:值捕获、引用捕获、初始化捕获与悬垂引用
捕获列表是整个 lambda 里唯一「没有默认值可选」的部分:你必须明确写出 []、[x]、[&x] 还是 [=]。它决定了三件事 —— 闭包能不能活过被捕获变量的生命周期、闭包对象占多少字节、以及调用时看到的是「定义那一刻的快照」还是「变量的实时值」。这三件事全是踩坑高发区,本文用真跑的输出把它们一个个钉死。
无名猿
10 天前
c++
·
现代c++
·
语法基础
·
踩坑记录
nullptr 取代 NULL 和 0:空指针的三种写法和唯一正确解
0 是整数,NULL 在多数实现里也只是 0 的宏,而 nullptr 是 C++11 引入的、专门表示空指针的独立类型 std::nullptr_t。这一个差别,在函数重载和模板推导里能悄无声息地选错版本。这篇用 static_assert + std::is_same 把三种写法的真实类型钉出来,并说清那个经典陷阱 f(NULL)。
无名猿
10 天前
c++
·
标准库
·
语法基础
·
踩坑记录
size_t 与 int 混用陷阱:有符号无符号比较与整数提升
size_t 和 int 混在一起比较大小,是 C++ 里最容易被忽略、又最容易出线上 bug 的坑。先看一个反直觉的事实:-1 > 0u 在 C++ 里的结果是 true。它不是语言 bug,而是「有符号数与无符号数比较时,有符号数会被转成无符号数」这条规则的直接后果。本文用真实编译输出把这条规则讲透,并整理成可查的规则表,最后给出几种规避写法及其取舍。
无名猿
11 天前
c++
·
内存管理
·
现代c++
·
踩坑记录
new/delete 与 malloc/free:为什么绝对不能混用
很多 C++ 新手把 new/delete 当成「C++ 版的 malloc/free」来用,结果在析构不执行、资源泄漏、甚至程序崩溃里打转。本质区别在于:new 不只是申请内存,它还调用构造函数;delete 不只是释放内存,它还调用析构函数。而 malloc/free 只认字节、不认对象。一旦把两边混着用,等于让「管生命周期的」和「只管内存的」两套机制互相越权——后果是未定义行为(undefined behavior)。本文用实跑代码把这条红线画清楚。
Albart575
2 个月前
linux
·
windows
·
macos
·
docker
·
环境搭建
·
踩坑记录
Docker Desktop最新版安装踩坑全记录(Windows_Mac_Linux)【2026 4.74.0 终版】
✅ 适配版本:Docker Desktop 4.74.0(2026最新稳定版)✅ 适配系统:Windows10/11、Mac Intel/Apple Silicon、Linux 全主流发行版
k4m7v2pz
2 个月前
python
·
7-zip
·
aes加密
·
踩坑记录
·
r36s
·
多卷zip解压
macOS 解压 40GB 分卷+中文密码固件镜像的五个深坑与解决方案
某天接到任务:把一份 R36S 掌机的「64G 单卡懒人固件」解压成磁盘镜像。文件在移动硬盘上:环境:macOS arm64。先 ls 看卷完整、7z l 列目录(需先 brew install p7zip),确认:多卷 zip、AES-256 加密、单文件镜像。然后噩梦开始。
辣机小司
4 个月前
java
·
spring boot
·
后端
·
yaml
·
踩坑记录
【踩坑记录:Spring Boot 配置文件读取值不一致?警惕 YAML 的“八进制陷阱”与 SnakeYAML 版本之谜】
在 Spring Boot 项目中,你是否遇到过 @Value 获取到的配置文件值与 application.yml 中配置的不一致 ?比如配置了 012 却读到了 10 ?或者 以 0 开头的数字配置被解析成了错误的值 ?
橙子小哥的代码世界
1 年前
深度学习
·
神经网络
·
macos
·
大模型
·
transformer
·
chatglm
·
踩坑记录
【大模型部署】mac m1本地部署 ChatGLM3-6B 超详细教程
背景 & 踩坑记录准备工作新建 Conda 环境并安装依赖关键环境变量运行 composite_demo
我是有底线的