程序接收信号SIGSEGV,分段故障。调试时

时间:2014-07-20 15:19:41

标签: c segmentation-fault codeblocks

如果我调试我的代码,那么我得到"编程收到信号SIGSEGV,Segmentation fault。"这是我的代码 -

#include <stdio.h>
#include <conio.h>
#include <string.h>

int main()
{
    struct term
    {
        char* name;
        long int id;
        float term_gpa;
    };
    struct term *term_ptr, student;

    term_ptr = &student;

    strcpy( term_ptr->name,"niton");
    term_ptr->id = 942044;
    term_ptr->term_gpa = 3.75;

    printf("Name : %s",term_ptr->name);
    printf("Name : %s",student.name);

    getch();
    return 0;
}

我在第17行收到此错误。请帮帮我!抱歉我的英语不好。

2 个答案:

答案 0 :(得分:2)

您需要为term_ptr->name

分配内存

答案 1 :(得分:1)

改变这个:

strcpy( term_ptr->name,"niton");

到此:

term_ptr->name = strdup("niton");