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