意外的分段错误

时间:2011-01-24 22:55:21

标签: c++ segmentation-fault


我有以下功能

bool Graph::termination_condition() {
    for(int i = 0; i < nodes; i++) {
        // check if any pair of neighbors is using the same color
        //vector<int> neigh_colors;
        //for(int idx = 0; idx < degree(node); idx++) {
            // adjList[node][idx] is the neighbor
            //if( find(neigh_colors.begin(), neigh_colors.end(), node_obj[adjList[node][idx]].l_color) == neigh_colors.end()  )
            //    // not found, add
                //neigh_colors.push_back(node_obj[adjList[node][idx]].l_color);
            //else
            //    return false;
        //}
        // check if the color of the node is used
        //if( find(neigh_colors.begin(), neigh_colors.end(), node_obj[node].l_color) != neigh_colors.end()  )
        //    return false;
        // check if color of node is in conflict list
        //if( node_obj[node].tmp_conf_list.size() )
        //    if( find( node_obj[node].tmp_conf_list.begin(), node_obj[node].tmp_conf_list.end(), node_obj[node].l_color) != node_obj[node].tmp_conf_list.end() )
        //        return false;
    }
    return true;
    // return false;
}

每当我调用它时会出现分段错误

void Graph::otherfunction() {
  if( termination_condition() == true )
    return 1;
}

可能是什么问题?

由于

更新:

int Graph::otherfunction() {
  if( termination_condition() == true )
    return 1;
}

2 个答案:

答案 0 :(得分:3)

我的水晶球说,this指针为NULL或无效,nodes是成员变量。

答案 1 :(得分:0)

由于我们获得了少量信息,我们所能做的就是猜测。

您最好的选择是使用调试器进入它,并找出问题所在。在otherFunction开头设置断点应该是一个很好的起点。