Bonjour

J'avais un programme qui tournait bien. J'ai une fuite de mémoire et je ne sais où chercher !

Le code du programme si vous voulez regarder est là : http://troumad.org/Mes_regles/perso3psi.zip mais, il y a plus de 20 000 lignes...

Donc, j'explique :
Dans le main.c j'ouvre une petite fenêtre de dialogue. Avant l'ouverture de ma fenêtre, je mets en place toute ma base de données.

Le problème, c'est que lorsque je reste sur cette fenêtre, j'ai assez de fuite de mémoire pour utiliser 100% de la mémoire de mon PC !

Après l'ouverture de cette fenêtre, il y a certes beaucoup de chose qui se passent (ouverture de fenêtre, parcours très fréquents des différentes états pour vérifier que tout est en état. Mais, ces autres fenêtres n'étant pas ouvertes, les processus qu'elles génèrent ne peuvent pas commencer.

Si je laisse inactive la fenêtre, la mémoire ne se remplit pas. Je pense donc que c'est dans la fenêtre en question.

Je fais des essais, quand j'enlève tous les boutons, je n'aéi plus ce problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
  button = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
  g_signal_connect (button, "clicked", G_CALLBACK (cb_fin),(gpointer)  param);
  gtk_box_pack_start (GTK_BOX (vbox), button, TRUE, TRUE, 0);
Si je les mets et que je ne passe pas la souris dessus, c'est bon (mais sans utiliser les boutons, le programme perd de son intérêt !)

Je commente la ligne avec g_signal_connect, le problème reste le même

Donc, je bloque...