为什么这行C ++会导致seg错误?

时间:2017-11-22 02:11:42

标签: c++

struct ListNode {
    int val;
    ListNode *next;
    ListNode(int x) : val(x), next(NULL) {}
};


int main()
{

    ListNode *dummy(0);
    cout << dummy->val << endl;
}

它在dummy-&gt; val

处发生了段错误

为什么这样做?

ListNode initNode(0);
ListNode *dummy = &initNode;

1 个答案:

答案 0 :(得分:0)

在第一种情况下 ListNode *dummy(0); 您正在为对象分配空值,这就是崩溃的原因。 在第二种情况下,您正在初始化对象的地址

ListNode *dummy = &initNode;