gpt4 book ai didi

c - Netbean IDE 上字符串数组中的不兼容指针类型警告

转载 作者:行者123 更新时间:2023-11-30 15:02:20 25 4
gpt4 key购买 nike

我正在编写一个程序,使用 typedef 和函数输入书籍信息。

这是我使用 typedef 的声明:

typedef struct {
char name[1000], author[1000], publisher[1000], description[1000], ISBN[15];
} book;

以下是用于添加图书信息的函数:

void addBook(int* n, book list[1000]) {
printf("Enter number of book you want to add: ");
fpurge(stdin);
scanf("%d", n);
int i;
for (i = 0; i < *n; i++) {
printf("Book title: ");
fpurge(stdin);
gets(list[i].name);
printf("Book author: ");
fpurge(stdin);
gets(list[i].author);
printf("Publisher: ");
fpurge(stdin);
gets(list[i].publisher);
printf("Description: ");
fpurge(stdin);
gets(list[i].description);
printf("ISBN: ");
fpurge(stdin);
gets(list[i].ISBN);
}
}

最后是主要的:

int main(int argc, char** argv) {
int n, list[1000];
addBook(&n, list);
return (EXIT_SUCCESS);
}

所以当我尝试运行时,它成功了。但是,编译器向我显示了两个警告:

  1. 警告:从不兼容的指针类型 [-Win兼容指针类型] 传递“addBook”的参数 2

  2. 预期为“book *”,但参数的类型为“int”

我的问题是:这些警告是否被视为错误?如果是,正确的解决方案是什么?如果不是,为什么编译器会显示它?

P/s:我使用 Netbean IDE。

最佳答案

Are these warnings considered as errors? I

在 C 语言中,大多数警告如果被忽略,迟早都会导致或多或少的致命行为。在这种情况下,臭名昭著的Undefined Behaviour被调用,这意味着从那一刻起任何事情都可能发生。该代码可能有效,也可能无效,有时仅有效,或者仅在星期一或......

因此请认真对待这些警告并相应地修复您的代码。

为此进行更改

 int n, list[1000];

成为

 int n;
book list[1000];

关于c - Netbean IDE 上字符串数组中的不兼容指针类型警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41085963/

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