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

  FORUM HardWare.fr
  Programmation
  C++

  Question sur le duo new/delete dans une fonciton

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question sur le duo new/delete dans une fonciton

n°1995061
le fou
Forza Massallia
Posté le 21-05-2010 à 13:47:47  profilanswer
 

Bonjour,
 
j'apprends le C++ et j'ai une question qui peut paraître stupide mais si dans une fonction A je crée un pointeur (genre string* t = new string;), je l'utiliser (bla bla). Est ce qu'une fois la fonction quittée le delete est implicite ou bien faut-il le faire à la main?
 
Merci


---------------
Celui qui sauve une vie, sauve l'humanité (Le Talmud) - Personne n'a plus grand amour que celui de donner sa vie pour ses amis (Jean XV, 13)
mood
Publicité
Posté le 21-05-2010 à 13:47:47  profilanswer
 

n°1995062
Elmoricq
Modérateur
Posté le 21-05-2010 à 13:48:58  profilanswer
 

Tu dois avoir dans ton code autant de new que de delete.

n°1995063
le fou
Forza Massallia
Posté le 21-05-2010 à 13:52:50  profilanswer
 

Merci.
Simple et précis.

 

Y a t il un moyen de contrôler l'espace mémoire utilisé par son programme?


Message édité par le fou le 21-05-2010 à 13:55:12

---------------
Celui qui sauve une vie, sauve l'humanité (Le Talmud) - Personne n'a plus grand amour que celui de donner sa vie pour ses amis (Jean XV, 13)
n°1995064
Elmoricq
Modérateur
Posté le 21-05-2010 à 14:01:09  profilanswer
 

Juste l'espace mémoire, c'est facile : il te suffit selon l'OS que tu utilises d'ouvrir l'outil de monitoring de processus (task manager sur windows, ps sur *nix, etc).
 
Malheureusement, cela ne donne qu'une information générale, et n'apporte aucune précision sur ce qui se passe dans le code. C'est utile pour vérifier que le code n'a pas un gros memleak (conso. mémoire qui augmente régulièrement sans justification), mais c'est à peu près tout.
 
Pour des analyses plus fines, tu as des outils d'audit d'exécution (insure++, purify, etc), mais ils sont souvent coûteux. Je ne sais pas s'il en existe de gratuits et de bonne qualité (je ne dis pas qu'il n'en existe pas, mais je ne connais pas trop les offres disponibles... p'têt valgrind ? ).  
Ces outils permettent de détecter non seulement les fuites mémoires de manière fine, mais également l'endroit du code où elles se produisent. Très utile.
 
Dernière précision : la consommation mémoire d'un programme, quel qu'il soit, ne diminue jamais. Elle ne peut que augmenter dans le temps (une "libération" mémoire permettant juste de pouvoir réutiliser de la mémoire au sein du processus en cours, cela ne diminue pas la consommation mémoire)

n°1995136
bjone
Insert booze to continue
Posté le 21-05-2010 à 16:14:14  profilanswer
 

http://www.boost.org/doc/libs/1_43 [...] rt_ptr.htm
 
N'abuse pas de l'instanciation d'objets par new/delete.
Si tu as juste besoin d'une string dans une fonction, tu la déclare simplement localement.


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

  Question sur le duo new/delete dans une fonciton

 

Sujets relatifs
Question de débutante, débutante, débutanteQuestion d'orientation !?
JS - XHTML - question sur onmouseoverquestion sur xsd
Question sur les fichiersSEO: question sur le cloaking
Question encapsulation debutant en Perl [HELP]Question de SESSION ...
Comparaison de chaine de caractères / Question à la con 
Plus de sujets relatifs à : Question sur le duo new/delete dans une fonciton


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