【发布时间】:2019-04-25 14:44:32
【问题描述】:
我正在尝试创建图表,而 addEdge 功能不起作用。 有我用的代码
typedef struct node {
int v;
struct node *next;
}node;
void addEdge(node *adj[],int v,int w){
node t={v,adj[w]};adj[w]=&t;
node tt={w,adj[v]};adj[v]=&tt;
}
【问题讨论】:
-
“不工作”不是问题描述,没有足够的代码来理解或重现问题。请发minimal reproducible example。
-
节点
t和tt在函数返回时过期,使得存储在adj中的指向它们的指针无效。 -
就像阿库所说的; tt和t是本地实例化的,返回时指针无效(因为分配的内存在栈上)
-
我们需要minimal reproducible example,但至少需要调用
addEdge的代码和相关的变量声明。否则前 3 个 cmets 适用。 -
谢谢。你指出了确切的事情。 @Arkku
标签: c pointers graph structure