2012-04-23 4 views
0
struct air_message 
{  
    deque<int> path; 

    int dest_region; 
    int dest_airport; 
    int next_region; 

    int msg_from; 
}; 

У меня есть эта структура. И у меня есть этот кодdeque segfault error

deque<int> p = graph->get_shortest_path(source_region, dest_region);      
m->path = p; 

На этой линии

m->path = p; 

Я получаю ошибку ошибки сегментации («т» представляет собой указатель на air_message структуры).

+6

Вы не присвоили объекту, на который указывает 'm' правильно. –

+1

Вы уверены, что 'm' правильно инициализирован? –

ответ

1

Вам необходимо изучить код, который выделяет m. Ваша проблема здесь не в самом deque, потому что m недействительный указатель.

Например, если только код у вас есть:

struct air_message *m; 
deque<int> p = graph->get_shortest_path (blah, blah);      
m->path = p; 

тогда да, m не будет действительным.

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