使用strcpy为结构赋值返回段错误

时间:2016-02-20 23:08:51

标签: c

我有以下代码,我正在尝试为结构名称赋值,但它返回了我的段核心错误。那是为什么?

error: function(e){
            if(e.status == 401){
                notice(e.responseText+' Please <a href="/login">Login.</a>', 'error');
            }
        }

1 个答案:

答案 0 :(得分:2)

您有malloc - struct,但您没有malloc字符串。 struct内的指针未初始化,因此您无法strcpy进入任何内容。

您必须为字符串分配内存,将该内存分配给name,然后才strcpy

Group *newGroup = malloc(sizeof(Group));
newGroup->name = malloc(strlen(group_name)+1); // +1 for '\0' terminator
strcpy(newGroup->name, group_name);