gpt4 book ai didi

c - C中的Strcpy不兼容指针类型

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

您在下面看到的这段代码是我项目的一部分。当我编译这段代码时,我得到了错误。错误是“从不兼容的指针类型传递‘strcpy’的参数 1”和预期的‘char ’,但参数的类型是‘char *’。怎么能我解决这个?谢谢。

 struct songs
{
char name[MAX];
double length;
struct songs *next;
};
typedef struct songs songs;

struct albums
{
char title[MAX];
int year;
char singerName[MAX];
songs *bas;
songs *current;
struct albums *next;
};
void add(char albumTitle[],char singerName[], int releaseYear )
{
struct albums *temp;
temp=(struct albums *)malloc(sizeof(struct albums));
strcpy( temp->title, albumTitle ); /* ERROR */
temp->year=releaseYear;
strcpy( temp->singerName, singerName ); /* ERROR */
if (head== NULL)
{
curr=head=temp;
head->next=NULL;
curr->next=NULL;
}
else
{
curr->next=temp;
curr=temp;
}

printf("Done\n");
}

最佳答案

char * strcpy ( char * destination, const char * source );

strcpy操作字符串,在 C 中用 a null-terminated array of char 表示,其类型为 char[]char*

但是,在您的代码中:

struct albums
{
char* title[MAX];
...
char* singerName[MAX];
...
};

char*[]表示char*的数组,是指向char的指针数组。 albums.titlealbums.singerName 因此不是字符串,而是指针数组。您应该将其更改为 char title[MAX] 以获得字符串。

关于c - C中的Strcpy不兼容指针类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19375324/

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