在C++中,当我有一个结构定义时
struct foo
{
...
};
struct bar
{
foo FooData[10];
...
};
我想写一个函数
void Baz(bar *Bar)
{
Bar->FooData = {};
}
我收到一个错误(在Visual Studio Community 2013中为C3079)“初始化程序列表不能用作此赋值运算符的正确操作数。”
然而,这种语法在以下情况下似乎可以正常工作
int Array[10];
Array = {};
...
为什么前面的示例无法编译?
最佳答案
关于您的问题:定义数组时可以使用“{}”,但之后不能使用。
关于这个问题,我建议memsetmemset(Bar->FooData, 0, sizeof (bar->FooData));
如果要动态分配FooData,则可以这样定义结构:
struct bar
{
foo *FooData;
...
关于c++ - 作为指针传递给结构体时,将C数组清零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32212474/