似乎這是一個重複的問題,但我搜索計算器的問題,關於這一點和非就像是我的問題(我認爲)的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