分段故障

vch*_*tta -4 c segmentation-fault

这段代码有什么问题?我收到Segmentation故障!

#include<stdio.h>

int main()
{
        struct {
                char* name;
                int age;
        } *emp;
        char* empname = "Kumar";
        int empage = 31;
        emp->name = empname;
        emp->age = empage;
        printf("empname :%s\n",emp->name);
        printf("empage :%d",emp->age);
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

以及如何纠正这个程序的工作?

cni*_*tar 9

你没有分配内存emp.在使用之前emp,请尝试

emp = malloc(sizeof(*emp));
Run Code Online (Sandbox Code Playgroud)

  • @yankee不,`emp`是指针,`*emp`是指向的对象:-) (9认同)
  • sizeof(emp),否则你得到一个指针的大小...... (2认同)