Bonjour à tous,
J'utilise GTK+ (version 2.10) depuis quelques mois et j'ai un soucis avec avec la fonction gtk_entry_set_text qui me crée des fuites de mémoire
En effet, je fais une mise à jour en continue (dans une boucle while)de mon entrée afin d'avoir un résultat visible en temps réel:
voici la partie du code concernée:
gchar *freq_to_display;
while (!gtk_main_iteration_do(0))
{
freq_to_display = g_strdup_printf ("%0.4f", average);
gtk_entry_set_text(GTK_ENTRY (My_entry), freq_to_display);
g_free(freq_to_display);
}
où "average" est une constante de type float et qui est continuellement modifiée autre part dans mon programme.
Je précise également que lorsque je remplace "average" par une valeur constante (voir ci dessous) dans cette boucle, je n'ai plus ce problème de fuite de mémoire:
average = 0;
freq_to_display = g_strdup_printf ("%0.4f", average);
OU
freq_to_display = g_strdup_printf ("%0.4f", 0);
Ceci dit, le problème pourrai être lié au fait que l'on change la valeur du gtk_entry_set_text à chaque fois et donc cette fonction allouerai un espace mémoire pour chaque valeur et sans toute fois la désallouée lorsqu'une nouvelle valeur est mise à jour.
J'espère que quelqu'un pourra m'apporter d'amples informations concernant ce problème et si possible une solution.
Merci d'avance
Partager