Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2350 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  J'aurais pas un problème de mémoire?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

J'aurais pas un problème de mémoire?

n°406652
haazheel
Posté le 23-05-2003 à 22:24:56  profilanswer
 

Salut,
 
alors voilà je me pose cette question, parce que j'ai remarqué que quand je compile souvent mon programme pour vérifier que ce que j'ai ajouté est correct, au bout d'un certain temps, Windows me fait des trucs bizarres :pt1cable:  
 
Par exemple ma liste de favoris perd des éléments, j'ai des icônes qui disparaissent, voient leur taille modifiée...
 
Mais si je redémarre, tout rentre dans l'ordre.
 
Tout ça ne serait pas du à un problème de mauvaise gestion de la mémoire?
 
Il faut dire qu'en ce domaine, j'ai quelques lacunes (s'il n'y avait que là... :D )
 
Par exemple: si je fais apparaître une nouvelle fenêtre:
 

Code :
  1. NewForm = new TNewForm(this);
  2. NewForm->Show();


 
Où je dois mettre

Code :
  1. delete NewForm

? Dans l'événement OnDestroy de NewForm?
ou bien dans le OnDestroy de la fenêtre appellante?
 
Bref, je galère...
 
Vous auriez pas une url sur la bonne gestion de tout ça?
 
Merci d'avance...


---------------
Another .Net Blog
mood
Publicité
Posté le 23-05-2003 à 22:24:56  profilanswer
 

n°406678
gatorette
Posté le 23-05-2003 à 23:12:59  profilanswer
 

Pour tes problèmes sous Windows, je ne vois pas trop. Cependant, il est vrai que si tu développes en utilisant les fonctions du Shell, il se peut que certaines erreurs laissent Windows dans un état instable (surtout si tu développes des DLL d'extension pour le Shell).
 

haazheel a écrit :

Où je dois mettre

Code :
  1. delete NewForm

? Dans l'événement OnDestroy de NewForm?
ou bien dans le OnDestroy de la fenêtre appellante?


 
Plutôt dans le OnDestroy de la fenêtre parente. En effet, sinon tu risque d'effectuer des actions sur ton objet alors qu'il est déjà détruit. De même, on peut imaginer que tu décides de créer ton objet statiquement et alors ton delete va planter. En gros, il faut, dans la mesure du possible, que l'objet qui crée un objet, le détruise également.


---------------
each day I don't die is cheating
n°406693
haazheel
Posté le 23-05-2003 à 23:47:01  profilanswer
 

Merci de ton aide...
 
Cependant j'ai découvert qu'il y a avec C++ Builder un utilitaire nommé CodeGuard qui permet de détecter les fuites de mémoire...
 
Effectivement il m'en a détecté.
 
Ainsi à un endroit du programme je faisais:
 

Code :
  1. delete[] ListeNomStats,ListeStats,ListeCouleurStats;


 
Et en fait ça marche pas :D  
 
Il faut faire:
 

Code :
  1. delete[] ListeNomStats;
  2. delete[] ListeStats;
  3. delete[] ListeCouleurStats;


 
Qui là ne m'indique plus d'erreur...


---------------
Another .Net Blog
n°406714
Konar
Posté le 24-05-2003 à 00:37:30  profilanswer
 

un truc aussi qui en général détruit complétement ton systeme au niveau graphique (qu'il soit 2000, xp...), c'est quand tu touches au devices context, au fontes, etc. et que tu rates fortement d'appeler les fonctions pour liberer ceux-ci ou bien que tu écris un peu n'importe-ou (surtout ce dernier cas).
 
j'avais un prog ou je ratais fortement, et ca te tuait toutes les icones de windows ,te mettait la fonte 'system' partout, et les menus (surtout le 'démarrer') avaient pas le droit d'afficher quoi que ce soit.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  J'aurais pas un problème de mémoire?

 

Sujets relatifs
(Trouvé merci)trou de mémoire.... sur les fonctions de math.h[PHP] Problème d'ouverture de fichier : il me propose 2 fois d'ouvrir
Probleme avec array_diffprobleme pour lire dans un fichier avec fread
[PHP] header (problème résolut)Problème d'architecture...
probleme pour construction d'1 site en PHPProbleme pour modifier une colonne dans une table Postgres
[débutant PHP] probleme lors du passage de parametreREMOTE_ADDR probleme
Plus de sujets relatifs à : J'aurais pas un problème de mémoire?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR