В C++, когда у меня есть структура определенияОчистка массива C к нулю при передаче в качестве члена указатель на структуру
struct foo
{
...
};
struct bar
{
foo FooData[10];
...
};
И я хочу, чтобы написать функцию
void Baz(bar *Bar)
{
Bar->FooData = {};
}
I получить сообщение об ошибке (C3079 в Visual Studio Community 2013) «список инициализаторов не может использоваться как правый операнд этого оператора присваивания».
Однако этот синтаксис, кажется, работает нормально в такой ситуации, как
int Array[10];
Array = {};
...
Почему предыдущий пример не компилировать?
Массивы не могут быть переданы. Кроме того, отметьте один язык только пожалуйста. – juanchopanza
Используйте 'memset()'. –
Я бы добавил, что ваш последний пример не должен компилироваться и не компилируется с clang 3.5; виновата визуальная студия за то, что она недостаточно строга. – Caninonos