似乎这是一个重复的问题,但我搜索计算器的问题,关于这一点和非就像是我的问题(我认为)的strcpy()从一个结构复制到另一个字符串
我有2一个struct每个人都有自己的字符指针变量,当我试图从一个变量的字符串复制到另一个变量的字符串,什么都没有发生,但不会出现任何错误,只是警告
implicit declaration of function strcpy
incompatible implicit declaration of built-in function 'strcpy'
我从计算器一些问题阅读你最好使用strdup()函数而不是strcpy(),但是当我这样做时,我有一个错误
too many arguments to function 'strdup'
我读了有一个与strcpy的问题()被称为“段错误”,我知道这是关于内存分配,我不完全理解了它的准确,不知道这是否是我的代码问题?
,这是我的代码
struct p
{
char *name;
struct p *next;
};
struct p *ptrary[10];
int main(void)
{
struct p p,q;
p.name="xyz";
p.next=NULL;
ptrary[0]=&p;
strdup(q.name,p.name);
ptrary[1]=&q;
printf("%s\n",ptrary[1]->name);
return 0;
}
所以有什么问题,我该怎么解决呢?
添加'#包括'之前的代码的其余部分(并确保它在一个行本身)。 'strdup'不是标准的,但典型的用法是:'q.name = strdup(p.name);'。 –
您是否尝试阅读函数的文档?我敢打赌,它会告诉你什么头文件你必须包括使用它们。 – Barmar
@JerryCoffin q.name = strdup(p.name);与我一起工作,而不包括新库 – Salahuddin