0
struct air_message
{    
    deque<int> path;

    int dest_region;
    int dest_airport;
    int next_region;

    int msg_from;
};

我有这个结构。我有这个代码

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

在这一行

m->path = p;

我收到分段错误错误('m' 是air_message结构的指针)。

4

1 回答 1

1

您需要检查分配m. 您的问题不在于双端队列本身,而是因为m它不是有效的指针。

例如,如果您拥有的唯一代码是:

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

那么是的,m将无效。

于 2012-04-23T03:47:52.463 回答