我有這樣的結構:結構設置等於隨機值
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));'它會工作... –