将新分配的内存分配给结构指针时出现段错误

时间:2015-05-14 17:17:00

标签: c++ pointers

struct Student {
public:
    string name;
    string family;
    string stdno;
    string ncode;
    float average;
    float age;
    struct Student *FL;
} *start, *cur, *p;

p = new struct Student;
    cur->FL = p;
    p->FL = NULL; // p->FL = nullptr in c++11
    cur = p;

我尝试分配一个分配给结构指针的新内存,似乎没有问题,但是当cur->FL = p;运行时我得到段错误,我在这里做错了吗?

2 个答案:

答案 0 :(得分:1)

假设您的代码全部都在全局范围内,您的FL指针初始化为null并且取消引用它以访问cur成员很可能会破坏。您需要确保初始化{{1}}。

答案 1 :(得分:1)

cur尚未指定任何指向

的内容

cur = p;

需要在p-> FL之前