1、简介
cppcheck
是一款用于C/C++
的代码静态检查工具,与编译器和其它的分析工具不同,cppcheck
不检查代码中的语法错误,主要目的是检查编译器在正常情况下发现不了的错误,即代码中真正的错误或者说运行时错误,也就是计算机术语中的zero false positives
,如越界操作、内存泄漏、空指针引用、变量未初始化等等。
2、示例
test.c
示例代码如下:
int main()
{
char a[10];
a[10] = 0;
return 0;
}
执行cppcheck:
$ ./cppcheck test.c
结果:
Checking test.c ...
[test.c:4]: (error) Array 'a[10]' accessed at index 10, which is out of bounds.
cppcheck检查结果显示代码第10行数组越界。
3、参考
【Cppcheck】http://cppcheck.net/
【cppcheck检查列表】https://sourceforge.net/p/cppcheck/wiki/ListOfChecks/
【cppcheck manual】http://cppcheck.sourceforge.net/manual.html