2016-08-12 16 views
1
のメンバーを指しています

私はC++で始めました。クラスのメンバーの住所を指すのに問題があります。 私はコンパイル時にエラーはありませんが、実行するとプログラムが壊れます。あなたがそれにアクセスしようとするとクラスのメンバーは、クラス

class vise 
{ 
public: 
    int h1=10; 
    int n1=12; 
    int *x; 
    int set(); 
}; 

class vodv 
{ 
public: 
    vise *v; 
    int g; 
}; 

int vise::set() 
{ 
    h1=5; 
    return 0; 
} 

この行はプログラム

vodv f; 
vise v1; 
(f.v)->x=&(v1.n1); 
+0

クラッシュを再現するために必要なコードを**すべて**提供してください。 –

答えて

2

を破るあなたはvのためにメモリを割り当てると、そうされていません。

(f.v)->x = &(v1.n1); 
    ^^^ 
    Dereferences 'v' 

vは、任意のメモリアドレスを指すことができます。 Dereferencingはの定義されていない動作であり、時には(あとで定義されていない)プログラムがクラッシュすることがあります。

関連する問題