标签: cppcheck

为什么cppcheck说"函数参数应该通过引用传递"?

这是cppcheck show waring的代码"[event.cpp:20] :(性能)函数参数'path'应该通过引用传递."

void
event::set_path(const std::string path)
{
    this->_path = path;
}
Run Code Online (Sandbox Code Playgroud)

但其他代码包括字符串paramer不显示此警告,如:

int
watcher::init_watch(const struct stat *sb, std::string path, bool linked)
{
    int wd;
        ....
}
Run Code Online (Sandbox Code Playgroud)

为什么?

c++ cppcheck

3
推荐指数
1
解决办法
2629
查看次数

Cppcheck说char [256]应该在构造函数的初始化列表中初始化

我用cppcheck检查了我的代码,它说我的char outStr[256]字段应该在构造函数的初始化列表中初始化.

warning: Member variable 'outStr' is not initialized in the constructor.
Run Code Online (Sandbox Code Playgroud)

此字段仅用于此方法:

const char* toStr(){
    sprintf(outStr,"%s %s", id.c_str(), localId.c_str());
    return outStr;
}
Run Code Online (Sandbox Code Playgroud)

添加c("")到初始化列表是否更好?还是cppcheck错了?或者还有其他方法可以解决这个问题吗?

c++ initialization c-strings initializer-list cppcheck

3
推荐指数
1
解决办法
1411
查看次数

cppcheck-terminateStrncpy

cppcheck 新手。无法弄清楚如何解决此问题(cppcheck 警告)。任何帮助,将不胜感激。

 if (!call_initialized)
 { char id1[16];
   char id1[16];
   char* dummy_char_ptr = inet_ntoa(*((in_addr*)&source_ip));
   std::strncpy(id1, dummy_char_ptr, 16);
   dummy_char_ptr=inet_ntoa(*((in_addr*)&destination_ip));
   std::strncpy(id2, dummy_char_ptr, 16);
   dummy_char_ptr=NULL;
   std::cerr << id1 << " -----> " << id2 << std::endl;
   return 0;
   }
Run Code Online (Sandbox Code Playgroud)

错误(警告) - 调用 strncpy() 后,缓冲区“id2”可能不会以零结尾。

c++ strncpy static-code-analysis cppcheck

3
推荐指数
1
解决办法
314
查看次数

CppCheck:变量“bla”未赋值

在我的代码库上运行 CppCheck 会产生一些样式警告。例如在

void foo(int& x)
{
  x = 0; 
}
void bar()
{
  int y;
  foo(y);
}
Run Code Online (Sandbox Code Playgroud)

它给了我

Variable 'y' is not assigned a value
Run Code Online (Sandbox Code Playgroud)

这与代码相同

 char buffer[160];
 i+=sprintf(buffer,"%2.2ld.",ymd.monthday);
Run Code Online (Sandbox Code Playgroud)

这是我的代码有问题还是 CppCheck 有问题?(如何)我应该修复它?

感谢您的任何想法!

c++ coding-style cppcheck

2
推荐指数
1
解决办法
1069
查看次数

我可以在执行时使用cppcheck:wq在Vim编辑器中用于c/c ++

我想覆盖wq/q/w!/ w/q!用户定义的命令及其功能.

示例:

如果我使用:wq退出,该命令应该对该特定的c/c ++文件进行静态代码检查并退出.

在这种情况下请帮帮我.

提前致谢.

vim cppcheck

2
推荐指数
1
解决办法
1333
查看次数

Cppcheck:mismatchAllocDealloc错误

我用cppcheck检查了我的程序,并且它抱怨了一些mismatchAllocDealloc错误.我真的不明白我做错了什么.这个错误是什么意思?

谢谢

memory-leaks memory-management cppcheck

2
推荐指数
1
解决办法
394
查看次数

为什么CPP Check不显示任何错误?

这个

cppcheck --enable=style --inconclusive --check-config --xml --xml-version=2 -v -I.. -I../mocks -I../gmock -I../gtest -DUNIT_TEST ../src
Run Code Online (Sandbox Code Playgroud)

结果

<?xml version="1.0" encoding="UTF-8"?>
<results version="2">
  <cppcheck version="1.52"/>
  <errors>
Checking ../src/AppMain.cpp...
  </errors>
</results>
Run Code Online (Sandbox Code Playgroud)

显然,我做错了-但是呢?

顺便说一句,我确定代码有问题,但是可以肯定的是,我将这两行粘贴到了其中

 char a[10];
 a[10] = 0;
Run Code Online (Sandbox Code Playgroud)

而且没有报告超出范围引用

c++ xml static-code-analysis cppcheck

2
推荐指数
1
解决办法
3349
查看次数

CppCheck 声称一个字段未被使用 - 而它在另一个文件中

我创建了一个自定义类型,并将其放入 command.h

typedef struct 
{
    char name[16];
    int paramv[7];
    int paramc;
} command;
Run Code Online (Sandbox Code Playgroud)

我在许多其他文件中使用它,但不在command.*. 现在我使用 QtCreator cppcheck 插件运行 CppCheck 测试。我得到的是:

command.h:12: warning: Cppcheck: struct member 'command::name' is never used.
Run Code Online (Sandbox Code Playgroud)

当我这样做时会发生同样的警告

 cppcheck src --enable=all --suppress=missingIncludeSystem src/*
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

static-analysis qt-creator cppcheck

2
推荐指数
1
解决办法
1494
查看次数

如何使用CppCheck工具在ubuntu中查看您的c / cpp代码?

我正在尝试CppCheck在Ubuntu中使用该工具。我运行了以下命令

cppcheck --enable=all  --check-config --suppress=missingIncludeSystem main.c 2>err.txt
Run Code Online (Sandbox Code Playgroud)

它创建err.txt的文件,但它是空的。

如何获得评分或检查main.c文件中的代码。

static-code-analysis cppcheck

2
推荐指数
1
解决办法
4192
查看次数

C++ 使用 cppcheck 建议的显式

使用强制转换构造函数不好吗?否则为什么代码质量检查器(在我的例子中是 cppcheck)会不断建议在单参数构造函数之前添加显式?

如果我想做怎么办

class MyClass {  
 A(int) {}
};

A a = 1;
Run Code Online (Sandbox Code Playgroud)

如果我按照“建议”写

class MyClass {  
 explicit A(int) {}
};

A a = 1; 
Run Code Online (Sandbox Code Playgroud)

会抛出一个错误,但如果我使用第一个,我会收到一个警告,我必须记录以通过代码审查。

c++ explicit explicit-constructor cppcheck

2
推荐指数
2
解决办法
161
查看次数