【发布时间】:2010-12-07 07:41:15
【问题描述】:
我正在尝试创建一个二维数组来表示加权图。为了制作矩阵,我正在制作一个数组数组,如下面的构造函数所示。该矩阵将存储连接两个节点的边的权重。例如 graph[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 在代码中进一步定义)。
【问题讨论】:
-
没有足够的信息来回答这个问题。您还需要显示实际崩溃的代码。但是,乍一看,double** 图形在此函数中定义并且从未返回。其他函数如何知道您分配给它的值是什么?
-
patros和Fritschy的意思是,其他变量没有访问这个名为graph的特定变量,其范围仅限于所示的构造函数。他们可能正在访问其他同名变量,但它仍然是不同的变量。