Lustuc
Messages postés30Date d'inscriptionlundi 18 août 2008StatutMembreDernière intervention20 octobre 2009
-
8 janv. 2009 à 23:33
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011
-
10 janv. 2009 à 12:09
Bonjour,
J'ai fait un programme d'analyse graphique, qui tourne en boucle (volontairement), mais au bout d'une dizaine de minute, l'écran de mon PC devient entièrement blanc, avec de temps en temps un morceau d'application qui apparaît puis disparaît l'instant d'après. Je suis obligé de rebouter le PC.
C'est comme si mon programme avait saturé la mémoire. Est-ce possible? Sachant que les variables utilisées occupent peu de place, la plus importante est une table à 2 dimension 10 caractères sur 20.
Si quelqu'un a une idée, ça me serait d'un grand secours...
Lustuc
Messages postés30Date d'inscriptionlundi 18 août 2008StatutMembreDernière intervention20 octobre 2009 9 janv. 2009 à 21:21
Merci pour vos réactions.
Hélas je ne peux pas vous donner ma boucle, non pas que je ne veuille pas, mais il s'agit d'une boucle géante. La boucle principale (dans la fonction main) doit faire 5 pages word et elle fait appelle à 8 fonctions qui chacune font entre 1 et 7 pages word.
Vue que ça plantait mon PC, pour garder une trace le programme écrit un fichier texte au fur et à mesure de son exécution, et il ne plante jamais au même endroit.
uaip, je me lance à la recherche du topic dont tu parles, si tu tombe dessus, pense à moi :)
ed73, y a t-il un remède pour "libérer de la ressource"?
merci encore, lustuc
Vous n’avez pas trouvé la réponse que vous recherchez ?
uaip
Messages postés1466Date d'inscriptionmardi 20 février 2007StatutMembreDernière intervention 7 février 2011 9 janv. 2009 à 21:40
Euh ben je l'avais lu ya pas si longtemps, mais les fuites de mémoire venaient d'une mauvaise libération des ressources (HPEN, HBRUSH, etc) comme le dit ed73.
ed73
Messages postés276Date d'inscriptionlundi 8 septembre 2008StatutMembreDernière intervention15 avril 20132 9 janv. 2009 à 22:24
Oui il y a un remède pour libérer de la ressource, c'est une des règles de base de la programmation : Toujours penser à libérer les objets ou ressources qu'on a alloués.
Lustuc
Messages postés30Date d'inscriptionlundi 18 août 2008StatutMembreDernière intervention20 octobre 2009 10 janv. 2009 à 11:16
En gros mon programme est constitué d'une succession de :
hdc = GetDC(handle);
color = GetPixel(hdc, cursor.x, cursor.y);
ReleaseDC(handle,hdc);
traitements des infos (while, for, if...)
lecture /écriture dans un fichier texte (fopen, fscanf, fprintf, fclose)
ecriture en console printf
hormis le GetDC, je ne vois pas ce qui nécessite d'être libéré....