2016-09-01 8 views
0

ポインタ上にオブジェクトを作成する際に問題があります。オブジェクト作成時のセグメンテーションフォルト

include <iostream> 

class foo 
{ 
int bar; 
}; 

class List 
{ 
public: 
    class foo * foo; 
    class List * next; 
}; 

main() 
{ 
    class List * Head; 
    Head->foo = new foo; 
    return 0; 
}; 

頭プログラムに新しいFOO()を作成した後は、セグメンテーションフォールトが発生しました。 誰かがこれを手伝ってくれますか?

+1

「class」キーワードを何度も繰り返している理由は何ですか? –

+0

@Torbjörn "foo"、 "next"、 "Head"のような変数を宣言するときはC++でオプションですが、省略することもできます(クラス宣言ではもちろんありません)。 – AhmadWabbi

答えて

3

このようなmainてください:あなたは、クラスListのオブジェクトへのポインタとしてHeadを宣言するため

main() 
{ 
    class List * Head = new List; //this line is modified 
    Head->foo = new foo; 
    return 0; 
}; 

にエラーがあるが、あなたは(たとえばnewを使用して)それを割り当てません。

+0

ああ、割り振りを忘れてしまいました。 –

関連する問題