结构可以这样初始化吗?
Can struct be Initialized this way?
下面是我的代码,我定义了一个包含 int
和 string
变量的结构。我记得在 c/c++ 中,
struct 可以像这样初始化 A a={0}
,我在下面这样做,但是,当我打印出它的字符串成员 b 时。程序崩溃并在抛出一个实例后调用终止
'std::logic_error' what(): basic_string::_M_construct null not valid
。但是,如果我将字符串 b 更改为 int b
,它不再崩溃了。有谁知道原因吗??
struct example
{
int a;
string b;
};
int main()
{
example q={0};
cout<<q.b<<endl;
}
您的代码运行良好,请检查执行情况 here。
您的输出将为空,因为 C++ 中的字符串默认为空,即默认情况下,C++ 中字符串的大小为 0。因此,没有输出。
下面是我的代码,我定义了一个包含 int
和 string
变量的结构。我记得在 c/c++ 中,
struct 可以像这样初始化 A a={0}
,我在下面这样做,但是,当我打印出它的字符串成员 b 时。程序崩溃并在抛出一个实例后调用终止
'std::logic_error' what(): basic_string::_M_construct null not valid
。但是,如果我将字符串 b 更改为 int b
,它不再崩溃了。有谁知道原因吗??
struct example
{
int a;
string b;
};
int main()
{
example q={0};
cout<<q.b<<endl;
}
您的代码运行良好,请检查执行情况 here。 您的输出将为空,因为 C++ 中的字符串默认为空,即默认情况下,C++ 中字符串的大小为 0。因此,没有输出。