c - 赋值从指针生成整数,无需强制转换(C 语言。)

标签 c arrays pointers char

您好,我收到此错误:“赋值从指针生成整数而不进行强制转换”

我所做的是将不同类型数组中的许多值放入一个指针数组中。结果,我在将整数分配给我的 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.     

最佳答案

您收到警告是因为您尝试将 int 值分配给 char *。这些类型彼此不兼容。

您应该将 flight 设为一个结构数组,而不是一个 char * 数组,该数组将保存其中的各种数据:

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++;

关于c - 赋值从指针生成整数,无需强制转换(C 语言。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49762522/

相关文章:

c - 从 C 中的函数传递和返回 2 个数组

c - 为什么我在 C 中的多维动态分配不起作用?

下面的代码影响早期代码的执行

c - 通过串口发送文件

C 内存泄漏 fsanitize=address

c - 返回值,带有很多小数位

javascript - 是否可以将变量存储在数组或对象中并引用它以获取变量的值而不是变量的字符串名称?

c - 将 csv 文件读入结构数组

java - 当接近内存容量时调整数组大小

c++ - 指向类的指针会增加模块化吗?