2017-05-05 5 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;                 
}  
関連する問題