2017-05-05 90 views
0

我有用于链接列表的数据结构,但无法打印每个节点的值。我刚刚得到exited with non-zero status。这里是代码:无法打印结构成员的值

#include <iostream> 

using namespace std; 

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


int main() 
{ 
    ListNode* l1; 
    l1->val = 1; 

    cout << l1->val << endl; 

    return 0; 
} 
+2

它的指针,不指向任何东西。要么使用'new'创建一个'ListNode',要么拿走'*'并且让它成为基于栈的。 –

+2

您的编译器应该在初始化之前警告您使用指针。如果没有,请调高警戒级别! – gavinb

回答

4

l1是一个未初始化的指针;在使用指针之前,必须将其指向一个有效对象:

#include <iostream>               

using namespace std;               

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


int main()                 
{                    
    ListNode* l1 = new ListNode(0); // allocate memory      
    l1->val = 1;                

    cout << l1->val << endl;             

    delete l1; // deallocate memory           

    return 0;                 
}