您好我收到此错误:'赋值从指针生成整数而没有强制转换'
我所做的是将来自不同类型数组的许多值放入一个指针数组中。结果我在代码上得到了这个警告,该代码将整数分配给我的char指针数组。
这是我的代码:
int id[10] = {120, 121, 122, 123,124,125, 126, 127, 128,129 };
char *from[5] = {"value1", "value2", "value3", "value4", "value5" };
char *to[5] = {"value1", "value2", "value3", "value4", "value5" };
int date[5][3] = {{10,6,2018},{15,6,2018},{20,6,2018},{1,7,2018},{15,7,2018}};
char *flight[30];
int i = 2;
int counter = 0;
flight[0]="Flight ID:";
flight[1]= id[i]; //warning in this line.
flight[2]=" From:";
flight[3]=from[i];
flight[4]=" to:";
flight[5]=to[i];
flight[6]=" Depart on:";
flight[7]=date[i][0];//warning in this line.
flight[8]="/";
flight[9]=date[i][1]; //warning in this line.
flight[10]="/";
flight[11]=date[i][2]; //warning in this line.
答案 0 :(得分:1)
您收到警告是因为您尝试将int
值分配给char *
。这些类型彼此不兼容。
不应该是char *
的数组,而应该使flight
成为一个结构数组,它将保存作为其中一部分的各种数据:
struct flight {
int id;
char *from;
char *to;
int departMon;
int departDay;
int departYear;
};
struct flight flight[30];
...
flight[counter].id = id[i];
flight[counter].from = from[i];
flight[counter].to = to[i];
flight[counter].departMon=date[i][0];
flight[counter].departDay=date[i][1];
flight[counter].departYear=date[i][2];
counter++;