C++软件开发常用辅助软件——Cppcheck

Cppcheck

Cppcheck是一种C/C++代码缺陷静态检查工具,不同于C/C++编译器及其它分析工具,Cppcheck只检查编译器检查不出来的bug,不检查语法错误。执行的检查包括:

1. 自动变量检查
2. 数组的边界检查
3. class类检查
4. 过期的函数,废弃函数调用检查
5. 异常内存使用,释放检查
6. 内存泄漏检查,主要是通过内存引用指针
7. 操作系统资源释放检查,中断,文件描述符等
8. 异常STL函数使用检查
9. 代码格式错误,以及性能因素检查

示例

1 #include <stdio.h>
2   
3 int main()
4 {
5     int *a = new int[3];
6     printf("%d
", a[4]);
7     return 0;
8 } 
View Code

使用命令如下

cppcheck -q --enable=performance --platform=unix32 --language=c++ test.cpp

结果如下

Checking test.cpp ...
[test.cpp:6]: (error) Array 'a[3]' accessed at index 4, which is out of bounds.
[test.cpp:7]: (error) Memory leak: a

分别指出内存越界、以及内存泄漏的问题。

原文地址:https://www.cnblogs.com/NoSoul/p/13356866.html