J'ai ce struct:paramètre Struct égale à la valeur aléatoire
typedef struct Graph{
node ** vertices;
int vertex_number;
}Graph;
Je lance alors cette fonction pour créer un graphique:
void init_graph(Graph *graph){
graph = (Graph *) malloc(sizeof(Graph));
graph->vertices = (node **) malloc(sizeof(node *));
graph->vertex_number = 0;
}
et l'exécuter comme ceci:
init_graph(&graph);
printf("%d", graph.vertex_number);
Lorsque j'essaie d'imprimer quelle est la valeur de vertex_number du graphique que j'ai créé, au lieu de me donner zéro, il me donne un grand nombre comme 1356352456, ou quelque chose comme ça. Pourquoi cela se passe-t-il et comment puis-je le réparer?
vous ne changez pas le pointeur dans * votre interlocuteur*. En outre, ce n'est pas un [mcve]. Comment 'graph' est-il déclaré? une structure - vous l'avez déjà allouée! il suffit de retirer 'graph = (Graph *) malloc (sizeof (Graph));' et cela fonctionnera ... –