我有这样的结构:结构设置等于随机值
typedef struct Graph{
node ** vertices;
int vertex_number;
}Graph;
我然后运行这个函数来创建一个图表:
void init_graph(Graph *graph){
graph = (Graph *) malloc(sizeof(Graph));
graph->vertices = (node **) malloc(sizeof(node *));
graph->vertex_number = 0;
}
而像这样运行:
init_graph(&graph);
printf("%d", graph.vertex_number);
当我尝试打印我创建的图的vertex_number的值时,而不是给我零它给我一个像1356352456这样的大数字,或类似的东西。为什么会发生这种情况,我该如何解决?
你不改变指针*呼叫者*。另外,这不是[mcve]。如何声明'graph'?一个结构 - 你已经分配了它!只要删除'graph =(Graph *)malloc(sizeof(Graph));'它会工作... –