Skip to content

程序员们一起来找茬,通过分析代码bug来熟悉C++语言的特性。

Notifications You must be signed in to change notification settings

gonglei007/cpp-bugs-killer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐛 C++ Bug Killer

通过分析真实C++代码中的bug,深入理解C++语言特性的训练仓库

License C++

📖 项目简介

这是一个专为C++开发者设计的训练仓库,通过分析实际代码中容易出现的bug,帮助开发者:

  • 🔍 深入理解 C++语言的核心特性
  • ⚠️ 识别常见陷阱 和编程错误
  • 💡 掌握最佳实践 和解决方案
  • 📚 系统化学习 C++的各个知识点

✨ 特性

  • 📋 16个精选Bug案例 - 涵盖从基础到高级的各类问题
  • 🎯 分类索引系统 - 按C++特性分类,便于查找和学习
  • 🛤️ 学习路径指南 - 提供推荐的学习顺序和难度分级
  • 💻 完整源代码 - 每个bug都配有可运行的示例代码
  • 📝 详细解析 - 包含问题分析、正确写法和要点总结
  • 🔗 拓展阅读 - 提供相关资源的链接

🚀 快速开始

1. 选择学习方式

方式一:按主题学习(推荐)

方式二:按难度学习

方式三:直接浏览

  • 从下面的详细内容中选择感兴趣的bug

2. 运行示例代码

每个bug都提供了完整的源代码示例,你可以:

  1. 在线运行:复制 source/bugXXX/source/main.cpp 中的代码到 Online GDB 运行
  2. 本地编译:使用你喜欢的C++编译器(GCC、Clang、MSVC等)编译运行

3. 学习建议

  1. 先看问题:尝试自己找出bug,不要先看答案
  2. 运行代码:实际运行代码,观察行为
  3. 理解原理:深入理解为什么会出现这个问题
  4. 实践应用:在自己的代码中应用学到的知识

📚 内容导航

🗂️ 核心导航

文档 说明
📑 分类索引 按C++特性分类查看所有bug
🛤️ 学习路径 推荐的学习顺序和难度分级
❓ 常见问题 野指针、内存对齐等常见问题

📖 详细内容

🔤 基础语法(6个)

Bug 标题 难度 知识点
Bug101 数组尺寸 ⭐⭐ 数组参数退化、引用传递
Bug102 整数除法问题 整数除法、类型转换
Bug201 空字符串检查 ⭐⭐ 指针解引用、空指针检查
Bug301 运算符优先级 运算符优先级、后置递增
Bug302 if-else 悬挂问题 if-else匹配规则、代码风格
Bug303 无符号数循环 ⭐⭐ 无符号整数、循环条件

💾 内存管理(4个)

Bug 标题 难度 知识点
Bug401 数组越界 ⭐⭐ 数组边界、sizeof操作符
Bug403 清空结构内存 ⭐⭐ sizeof操作符、指针与对象
Bug502 内存泄漏 ⭐⭐⭐ 动态内存管理、RAII、智能指针
Bug505 悬空引用 ⭐⭐⭐ 引用生命周期、对象生命周期

🔢 类型系统(3个)

Bug 标题 难度 知识点
Bug504 未初始化变量 ⭐⭐ 变量初始化、默认初始化
Bug506 类型转换问题 ⭐⭐⭐ 类型转换、static_cast、dynamic_cast
Bug542 指定长度的整形数 ⭐⭐⭐ 位域、有符号整数、补码

🚀 高级特性(3个)

Bug 标题 难度 知识点
Bug601 运算符重载返回引用 ⭐⭐⭐ 运算符重载、返回值类型、RVO
Bug602 注释使用 ⭐⭐ 注释语法、词法分析
Bug604 宏的使用 ⭐⭐ 宏定义、文本替换、运算符优先级

📊 统计信息

  • 总Bug数量: 16个
  • 分类数量: 7个主要分类
  • 源代码示例: 16个完整示例
  • 难度分布:
    • ⭐ 入门级: 3个
    • ⭐⭐ 初级: 8个
    • ⭐⭐⭐ 中级: 5个

🛠️ 使用工具

在线编译调试

本地开发环境

  • 编译器: GCC、Clang、MSVC
  • IDE: Visual Studio、CLion、Code::Blocks
  • 静态分析工具: PVS-Studio、Clang Static Analyzer

💬 交流讨论

欢迎加入我们的社区,一起学习交流!

平台 链接
QQ群 242500383 GLTOP游戏研发与技术1群

📚 拓展阅读

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

🙏 致谢

感谢所有为这个项目做出贡献的开发者!


⭐ 如果这个项目对你有帮助,请给个Star支持一下!⭐

Made with ❤️ by C++ Developers

About

程序员们一起来找茬,通过分析代码bug来熟悉C++语言的特性。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published