2016-08-12 2 views
1

Я только что начал с C++, и у меня возникла проблема с указанием на адрес memeber класса. Когда я компилирую, ошибок нет, но программа прерывается при запуске.Участник класса указывает на член класса

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 может указывать на любой адрес памяти , Выражение разыменования - это неопределенное поведение, которое иногда (в конце концов, не определено) сбой вашей программы.

Смежные вопросы