关于定义动态结构数组后赋值的问题。
代码:#include<iostream>
int main()
{
using namespace std;
struct CandyBar
{
char band[20];
float weight;
int calorie;
};
CandyBar *snack=new CandyBar[3];
snack[0]={"Mocha Munch",2.3,350};
snack[1]={"WoWo",1.6,270};
snack[2]={"JiaJia",1.7,310};
cout<<"Band: "<<snack[0].band<<endl<<"Weight: "<<snack[0].weight<<endl<<"Calorie: "<<snack[0].calorie<<endl<<endl;
cout<<"Band: "<<snack[1].band<<endl<<"Weight: "<<snack[1].weight<<endl<<"Calorie: "<<snack[1].calorie<<endl<<endl;
cout<<"Band: "<<snack[2].band<<endl<<"Weight: "<<snack[2].weight<<endl<<"Calorie: "<<snack[2].calorie<<endl;
system("pause");
return 0;
}
编译时指出
snack[0]={"Mocha Munch",2.3,350};
snack[1]={"WoWo",1.6,270};
snack[2]={"JiaJia",1.7,310};
这三段有错误。
同时若改成
snack[0].band="Mocha Munch";
也显示有错误,并且是incompatible types in assignment of `const char[12]' to `char[20]'
不知道为什么不能这样赋值,所以请教各位这两个错误的原因以及解决办法。
先谢谢各位了!