Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我需要帮助通过‘;strcpy&x2019;从整数生成指针,无需强制转换[-Wint转换]_C - Fatal编程技术网

我需要帮助通过‘;strcpy&x2019;从整数生成指针,无需强制转换[-Wint转换]

我需要帮助通过‘;strcpy&x2019;从整数生成指针,无需强制转换[-Wint转换],c,C,我试图编译这段代码,但它给了我“传递'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

我试图编译这段代码,但它给了我“传递'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++;
struct Book
{
字符标题[最大标题长度+1];
字符作者[最大作者长度+1];
国际年;
};
作废菜单\删除\书籍(作废)
{
煤焦温度[300];
int x,b;
int no_书籍;
FGET(温度、最大标题长度、标准尺寸);
{
对于(x=0;x
它在抱怨这一行:

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

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

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

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

它抱怨这一行:

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

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

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

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

请注意
fgets
保留了换行符因此,在存储和比较之前,您应该先从输入缓冲区开始。Book::year是一个整数,而不是字符串,因此
Book\u数组[x]。year=Book\u数组[b]。year
应该可以正常工作。@John正确的感谢方式是“接受”答案。请注意,
fgets
保留了输入缓冲区中的换行符,因此在存储和比较之前,您应该这样做。Book::year是一个整数,而不是字符串,因此
Book_数组[x]。year=Book_数组[b]。year
应该可以正常工作。@John正确的感谢方式是“接受”答案。