小编ver*_*sat的帖子

什么是Windows等效的CppCheck?

我有一个极端的问题.

我已经在游戏上工作了大约两年(20000多行代码),最近我注意到了大量的内存泄漏.问题是我无法追踪他们中的每一个,因为我的游戏太大了......

我已经四处搜索并注意到CppCheck在我的情况下会很有用,但问题是因为我使用的是Windows,所以我不能使用CppCheck(仅适用于linux).

我想知道是否有一个库或插件是CppCheck等效的Windows,或者可能是一种在Windows上使用CppCheck的方法.

我提出的所有可能性,以及其他问题的解决方案(例如使用std :: deque的智能指针等)都意味着我的程序很小或更合适:重写我的整个程序,就像我一样 - 真的 - 不想做...

IDE:代码块10.05

编译:MinGW 3.81 GCC 4.4.1

c++ memory-leaks cppcheck

6
推荐指数
1
解决办法
1338
查看次数

动态数组:使用realloc()而不会出现内存泄漏

我使用realloc来调整分配的内存:

char **get_channel_name(void)   
{
    char **result;
    int n;

    result = (char **) 0;
    for (elem = snd_mixer_first_elem(handle), n = 0; elem; elem = snd_mixer_elem_next(elem)) {
        if (!snd_mixer_selem_is_active(elem))
            continue;
        if (snd_mixer_selem_has_playback_volume(elem) &&
            snd_mixer_selem_has_playback_switch(elem) &&
            snd_mixer_selem_has_capture_switch(elem)) {
            if (result == (char **) 0)
                result = (char **) malloc(sizeof(char *));
            else
                result = (char **) realloc(result, sizeof(char *) * (n + 1)); /* nulled but not freed upon failure */
            result[n++] = strdup(snd_mixer_selem_get_name(elem));
        }
    }

    if (result == (char **) 0)
        return NULL; …
Run Code Online (Sandbox Code Playgroud)

c realloc cppcheck

5
推荐指数
1
解决办法
2658
查看次数

是否允许C++编译器/链接器删除未使用的方法?

是否允许C++编译器或链接器(通过任何C++标准)删除未使用的方法?似乎允许编译器删除未使用的静态函数,允许链接器删除未使用的函数.但我没有找到任何信息类似于方法的信息.当方法是虚拟的时,这真的很有趣.

c++ methods optimization

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

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
查看次数