繁体   English   中英

C 中的结构错误“指向 integer 转换的不兼容指针从 'char [5]' [-Wint-conversion] 分配给 'char'”

[英]Struct error in C "incompatible pointer to integer conversion assigning to 'char' from 'char [5]' [-Wint-conversion]"

为我的数据结构和算法 class 学习 C。 我正在尝试为驾驶执照制作一个基本结构,但每当我使用 go 编译它时,我都会收到此错误。非常感谢任何帮助。

#include <stdio.h>

struct driversLiscence{
    char name;
    int dob;
    int liscenceNum; 
};

int main(){
    struct driversLiscence Matt;
    Matt.name = "Matt";
    Matt.dob = 11031997;
    Matt.liscenceNum = 112040190;
    printf("Name is: %c\n",Matt.name);
    printf("DOB is: %d\n",Matt.dob);
    printf("Liscence number is: %d",Matt.liscenceNum);
    return 0;
}
struct driversLiscence{
    char name;

name是单个字符。 除非您生活在一个非常小的社会中,人们只有一个字母的名字,否则您将需要更多的字符来存储这个人的名字。

你要:

struct driversLiscence{
    char name[MAX_NAME_LENGTH];

您的name可以是MAX_NAME_LENGTH - 1字符。

但是如果你编译你的代码,你会遇到另一个问题,因为 arrays 不能被分配。 您需要将名称复制到此结构成员中。

    strcpy(Matt.name, "Matt");

您也可以将name声明为指向char的指针,但我认为这对您来说有点早,并且它引入了新的要求和问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM