在C ++中访问矩阵时崩溃

时间:2010-12-06 22:30:20

标签: c++ matrix

我正在尝试创建一个2D数组来表示加权图。为了制作矩阵,我正在制作一个数组数组,如下面的构造函数所示。该矩阵将存储连接两个节点的边的权重。例如,图[1] [2]将存储点1和2之间边缘的权重。

Weighted_graph::Weighted_graph( int n ):vertices(n){
double **graph= new double *[vertices];
nodeDegree=new int [n];
edges=0;
for (int c=0;c<vertices;c++)
{       
    graph[c] = new double[vertices];
    nodeDegree[c]=0;    
    for (int d=0;d<vertices;d++)
    {   
        graph[c][d]=INF;
    }   
}

}

图表定义为double **graph;

这似乎有效,直到我尝试从程序崩溃的其他函数访问变量图。 (INF在代码中进一步正确定义)。

3 个答案:

答案 0 :(得分:1)

我认为您正在引用正在构建的对象的图形成员。但是,图表在那里被声明为局部变量。

答案 1 :(得分:0)

这都是关于范围的,因为您在一个函数中可以重用变量名,但是这个只能在教师中访问。从构造函数中的图形前面删除双**。

答案 2 :(得分:0)

不要重新发明轮子。使用boost::multi_array