|
别人问我一个问题,代码如下
#include<iostream>
using namespace std;
struct pizza
{
char company[3];
double diameter;
double weight;
};
int main()
{
pizza *ps =new pizza[3];
ps[0].company="qq";
ps[0].diameter=1.2;
ps[0].weight=1.2;
ps[1].company="w";
ps[1].diameter=2.2;
ps[1].weight=2.2;
ps[2].company="e";
ps[2].diameter=3.2;
ps[2].weight=3.2;
cout<<ps[0].company<<endl;
cout<<ps[0].diameter<<endl;
cout<<ps[0].weight<<endl;
cout<<ps[1].company<<endl;
cout<<ps[1].diameter<<endl;
cout<<ps[1].weight<<endl;
cout<<ps[2].company<<endl;
cout<<ps[2].diameter<<endl;
cout<<ps[2].weight<<endl;
delete []ps;
cin.get();
cin.get();
return 0;
}
以上的错误应该是字符数组常量问题(我用java较多,c++还是以前看的一点印象),ps[0].company="qq";这样对字符串常量的操作语句肯定不行。我将结构体内的char company[3];改为char *company;调试通过。
我的问题是,如何不改动结构体定义,即还用char company[3];,修改赋值语句,通过指针来赋值?(不知道如何获得company元素的指针)
说的乱七八糟,不知大虾们明白了吗? |
|