2017-05-05 111 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;                 
}