我需要帮助传递"strcpy"的参数 2 从整数制作指针而无需强制转换 [-Wint-convers



我尝试编译这段代码,但它给了我"传递'strcpy'的参数2从整数发出指针,而无需强制转换[-Wint-conversion]"。有人可以告诉我我需要做什么。

struct Book
{
char title[MAX_TITLE_LENGTH+1];  
char author[MAX_AUTHOR_LENGTH+1]; 
int  year;                       
};
void menu_delete_book(void)
{
char temp[300]; 
int x,b;
int no_books;
fgets(temp,MAX_TITLE_LENGTH,stdin);
{
for(x = 0; x< no_books; x++)
{
if (strcmp (book_array[x].title, temp) == 0)
{
for(x=1; x < no_books -1; x++)
{
for(b = x + 1; b < no_books; b++)
{
strcpy(book_array[x].title, book_array[b].title);   
strcpy(book_array[x].author, book_array[b].author);
strcpy(book_array[x].year, book_array[b].year);
}
}
}
}
}
no_books++;

它抱怨这行:

strcpy(book_array[x].year, book_array[b].year);

Book::year 是一个整数,而不是一个字符串。请改为执行以下操作:

book_array[x].year = book_array[b].year;

警告告诉您传递给strcpy的整数值正在隐式转换为指针。将int转换为pointer几乎总是一个错误,在您的情况下,整数绝对不包含有效的指针值。

最新更新