2017-06-15 15 views
2
struct zaidejas { 
    int numeris; 
    int aiksteleje; 
    bool penketas; 
}; 
int main(){ 
    zaidejas z[12]; 
    z = {}; 
} 

我在Z = {}线得到一个错误:如何将整个结构设置为null?

error: assigning to an array from an initializer list 

我不知道如何解决这个错误。我真的很感激任何帮助。

+0

的可能的复制[我如何在结构中初始化一个指向空在C++ 11?(https://开头计算器。 COM /问题/ 20596780 /如何-DO-初始化-A-指针-IN-A-结构到无效的-C11) – Jayesh

回答

3

您不能分配给一个数组,只能在定义它时进行初始化,或者一旦定义它就复制到它。

我建议初始化:

zaidejas z[12] = {}; 
1

你应该只写

zaidejas z[12] = {}; 
//    ^^^^ 

这将值初始化所有的数组元素,这反过来将零初始化每个元素的类的数据成员。

1

如何将整个结构设置为null?

像这样:

zaidejas z = {}; 

为了您的数组,你应该做的:

zaidejas z[12] = {}; 
1

在C++ 11,你可以按如下初始化数组:

zaidejas z[12]{}; 

如果你想初始化你的数组中的一个元素,你可以使用:

z[0] = zaidejas{}; 

这是(基于构造函数)初始化的综合等效那是在早期版本的C++

z[0] = zaidejas(); 
0

可你有12个元素。如果你想设置所有的人都为空,做这样的事情

int main(){ 
    int number_elements = 12; 
    zaidejas z[number_elements ]; 
    for (int i = 0; i < number_elements ; z++) z[i] = {} 
}