C++11 C++;定义和初始化结构实例数组:未定义变量? 问题:如果C++ 11支持初始化数组,那么不是STL容器,它包含一个初始化列表,该结构包含一个类似于STD::string的C++类型。请参阅下面的代码

C++11 C++;定义和初始化结构实例数组:未定义变量? 问题:如果C++ 11支持初始化数组,那么不是STL容器,它包含一个初始化列表,该结构包含一个类似于STD::string的C++类型。请参阅下面的代码,c++11,C++11,我使用的编译器没有抱怨:gcc版本4.8.2(Ubuntu 4.8.2-19ubuntu1) 代码似乎运行得很完美 瓦尔格林没有抱怨 但我们正在评估的静态分析器工具确实存在以下问题: const MyStruct02 myArr02[]={ {“值0”,0,-141943040} 未初始化变量 myArr02未初始化 myArr02是在Repro001单位化变量中定义的。cpp:49 分析仪指的是: 代码: #包括 #包括 结构MyStruct01 { 常量字符*描述; int val1;

我使用的编译器没有抱怨:gcc版本4.8.2(Ubuntu 4.8.2-19ubuntu1)

代码似乎运行得很完美

瓦尔格林没有抱怨

但我们正在评估的静态分析器工具确实存在以下问题:

const MyStruct02 myArr02[]={ {“值0”,0,-141943040}

  • 未初始化变量
  • myArr02未初始化
  • myArr02是在Repro001单位化变量中定义的。cpp:49
分析仪指的是:

代码:

#包括
#包括
结构MyStruct01
{
常量字符*描述;
int val1;
int val2;
int val3;
};
结构mystruct2
{
std::字符串描述;
int val1;
int val2;
int val3;
};
int main(int argc,const char*argv[]
{
const MyStruct01 myArr01[]={
{“值0”,0,-141943040},
{“值1”,1050000010485760},
{“值2”,20,1000000,409600},
{“价值3”,30,500000,204800},
{“值4_0”,40,200000,102400}
};

std::cout您到底使用了什么分析器?GCC是否会用
-pedantic-Wall
警告您?@usr1234567 analyzer=CodeSonar.g++-pedantic-Wall…->不会返回任何警告。谢谢您的帮助我相信代码是正确的,编译器是正确的,分析器是错误的。@HenryRoeland您可以试试Clang及其静态分析器。除此之外,我看没问题。
#include <string>
#include <iostream>

struct MyStruct01
{
    const char* description;
    int         val1;
    int         val2;
    int         val3;
};

struct MyStruct02
{
    std::string description;
    int         val1;
    int         val2;
    int         val3;
};

int main(int argc, const char* argv[])
{
    const MyStruct01 myArr01[] = {
        {"Value 0",   0,         -1,    41943040},
        {"Value 1",   10,   5000000,    10485760},
        {"Value 2",   20,   1000000,    409600  },
        {"Value 3",   30,    500000,    204800  },
        {"Value 4_0", 40,    200000,    102400  }
    };

    std::cout << myArr01[0].description << std::endl;


    const MyStruct02 myArr02[] = {
        {"Value 0",   0,         -1,    41943040},
        {"Value 1",   10,   5000000,    10485760},
        {"Value 2",   20,   1000000,    409600  },
        {"Value 3",   30,    500000,    204800  },
        {"Value 4_0", 40,    200000,    102400  }
    };

    std::cout << myArr02[0].description << std::endl;

    return 0;
}