首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

构造数组

2012-10-15 
结构数组我编了个程序,里面定义了结构struct plane {int seatint flagchar fname[11]char lname[11]}

结构数组
我编了个程序,里面定义了结构
struct plane {
int seat;
int flag;
char fname[11];
char lname[11];
};
然后我想初始化一个结构数组时
for (i = 0; i < 12; i++)
{
planes[i].seat = i;
planes[i].flag = 0;
planes[i].fname[11] = ""; //即初始化一个空名字符数组
planes[i].lname[11] = "";
}
最后两个等号“=”下面出现了波浪线,一看,发现是
Error:不能将“const char *” 类型的值分配到"char"类型的实体
请问怎么回事?怎么办?

[解决办法]

C/C++ code
planes[i].fname[11] = ""; //即初始化一个空名字符数组planes[i].lname[11] = "";
[解决办法]
首先,你初始化的下标越界了。
[解决办法]
""是字符串,怎么可以赋给char
即使不是字符串,planes[i].fname[11]也越界了 11
[解决办法]
字符串返回的是字符串的地址 (const char *)
[解决办法]
可以这样。
C/C++ code
#include<iostream>using namespace std;struct plane {    int seat;    int flag;    char fname[11];    char lname[11];};int main(){    plane planes[12];    for (int i = 0; i < 12; i++)    {        planes[i].seat = i;        planes[i].flag = 0;        strcpy(planes[i].fname, "");        strcpy(planes[i].lname, "");    }    return 0;} 

热点排行