URL: https://linuxfr.org/forums/programmation-c--2/posts/glib-problem-avec-garray Title: glib: problem avec GArray Authors: Erwan Date: 2004年10月22日T08:09:33+02:00 Tags: Score: 0 Bonjour. Voila, je suis nouveau sur glib, et c'est tellement bien foutu que ca rend le C utilisable ! Mais tout n'est pas rose, et je n'arrive pas a affecter une valeur dans un tableau. Voila ce que je veux faire: un tableau de listes, genre: 0: "toto", "tata", "titi" 1: "popo", "papa", "pipi" 2:..... (en fait de "toto" "tata", j'ai des pointeurs vers un type GaloisNode que j'ai defini.) Donc j'ai une variable buckets: GArray* buckets = g_array_new(FALSE, FALSE, sizeof(gpointer)); g_array_set_size(buckets, laBonneTaille); Puis je me met a inserer des elements dans mes listes. Pour ca je me suis fait une petite fonction GArray* bucket_insert(GArray* buckets, GaloisNode* node, guint index){ GList* currentBucket = g_array_index (buckets, GList*, index); currentBucket = g_list_append(currentBucket, node); g_array_insert_val(buckets, index, currentBucket); } * Ligne 1: je recupere la GList existante a la position "index" * Ligne 2: j'ajoute "node" a la GList * Ligne 3: je remet la GList a sa place ; je sais que g_list_append modifie la liste qu'il prend en entree, mais si on avait NULL (insertion du premier element) ca ne nous aide pas beaucoup. Voila, maintenant le probleme c'est qu'a chaque fois que je rentre dans cette fonction, la liste que je recupere au final a l'air vide. Et une fois que mon "remplissage" de listes est fini, je me retrouve avec au plus un element dans chaque liste. Il semble donc que l'insertion marche, mais qu'elle vide la liste...