memcpy在我的程序中表現得很奇怪。我的函數被調用兩次,所以memcpy行運行兩次,第一次工作沒有問題,第二次我在該行得到一個seg fault(使用gdb)。我很困惑,因爲我不明白爲什麼它會起作用,但不是兩次......另外,我輸入的兩個名稱長度相同。爲什麼memcpy不能在第二次嘗試中使用?
這是我...
typedef struct _item_
{
char name[500];
}item;
int my_function(char *name)
{
item *myitem = malloc(sizeof(item));
char* temp = myitem->name;
strcpy(temp, name);
/* code here to write add item to a global structure */
return 0;
}
在測試代碼...
int i;
i = my_function("test1");
.
.
.
i = my_function("test2");
後來我改變它的strcpy和發生
同樣的問題strcpy(temp, name);
任何ID爲什麼這可能不起作用?
什麼是'my_struct-> name'指向? –
它指向一個字符[500] – spatara
這不能回答給出的信息發佈一個可編輯的,最小化的例子,以顯示問題 – interjay