c语言如何把函数传进来的字符串参数赋值给另一个字符数组?

XK *addXK(char *id)
{
    XK *p;
    char flag;
    char name[20];
    strcpy(name,id);
    head5 = insertXK(head5,p);
    saveXK();
}

程序没有报错可是运行到这里程序会挂掉。。
我用print调试过,就是strcpy(name,id);这一句有问题= =。。
T T
我在想是不是结构体字符串变量不应该这样赋值,还是说传进来的是一个指针,不能这样赋给结构体字符串变量?

阅读 7.8k
3 个回答

你的name只有20的大小,不知道你能否确保传进来的id字符串长度不会比他大。

你的指针p没有初始化啊,你把它传给了insertXK,是不是在里面提领指针报错啊

嗯。。。我忘了给p分配空间了
p = (XK*) malloc(sizeof(XK));
(再见.gif
谢谢了~