结构数组
我编了个程序,里面定义了结构
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"类型的实体
请问怎么回事?怎么办?
[解决办法]
planes[i].fname[11] = ""; //即初始化一个空名字符数组planes[i].lname[11] = "";
[解决办法]
首先,你初始化的下标越界了。
[解决办法]
""是字符串,怎么可以赋给char
即使不是字符串,planes[i].fname[11]也越界了 11
[解决办法]
字符串返回的是字符串的地址 (const char *)
[解决办法]
可以这样。
#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;}