读书人

一个关于结构体字符数组元素赋值的有关

发布时间: 2012-02-28 13:06:36 作者: rapoo

一个关于结构体字符数组元素赋值的问题
别人问我一个问题,代码如下
#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元素的指针)
说的乱七八糟,不知大虾们明白了吗?

只要说清楚问题马上给分~

[解决办法]
用strcpy代替=,注意大小

读书人网 >C++

热点推荐