gpt4 book ai didi

c - 收到警告 : assignment from incompatible pointer type for using pointer to char array in struct

转载 作者:太空宇宙 更新时间:2023-11-04 02:32:06 25 4
gpt4 key购买 nike

我在编译时收到“警告:来自不兼容指针类型的赋值”。我怎么能不得到那个警告?

部分源码如下:

typedef struct
{
char id[9];
char fName[9];
char lName[9];
int finalExam;
int midTerm;
float quiz1;
float quiz2;
float quiz3;
float totalMark;
} Student;

....
....
....

pointAt = students; // initialize pointer
float* topMark;
char* topLname;
char* topId;
topMark = &(*pointAt).totalMark;
topLname = &(*pointAt).lName;
topId = &(*pointAt).id;
printf("top guy : %s\n", topLname);
pointAt += 1;

我在以下位置收到该警告:

topLname = &(*pointAt).lName;
topId = &(*pointAt).id;

这两行会导致警告,因为它指向 char 数组。我该如何解决这个问题?

最佳答案

&(*pointAt).lName&(*pointAt).idchar (*)[9] 类型,而这些值被分配给的变量是 char * 类型,因此不匹配。

摆脱 & 运算符以获得 char [9] 的表达式,它将衰减为 char *。当你这样做时,使用 -> 运算符来引用结构指针的成员:

topLname = pointAt->lName;
topId = pointAt->id;

关于c - 收到警告 : assignment from incompatible pointer type for using pointer to char array in struct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41880610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com