memcpy 在我的程序中表现得很奇怪。我的函数被调用了两次,所以 memcpy 行运行了两次,第一次运行没有问题,第二次我在该行(使用 gdb)出现 seg 错误。我很困惑,因为我不明白为什么它会工作一次而不是两次......而且,我输入的两个名字的长度相同。
这就是我所拥有的...
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);
关于为什么这可能不起作用的任何想法?