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

  FORUM HardWare.fr
  Programmation
  C++

  gestion de la mémoire ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

gestion de la mémoire ?

n°174438
xav14
Posté le 10-07-2002 à 15:45:49  profilanswer
 

cet année j'ai étudié le c (ansi) a la fac, et ils arrétait pas de nous dire de bien désallouer la mémoire à la fin de l'execution.
 
la je voudrai faire un ptit programme qui utilisent des piles assez grosses (1500 éléments, voire plus). la désallocation est-elle conseillée ou je m'en tape ?

mood
Publicité
Posté le 10-07-2002 à 15:45:49  profilanswer
 

n°174444
youdontcar​e
Posté le 10-07-2002 à 15:49:53  profilanswer
 

tu dois désallouer tout ce que tu alloues.

n°174445
xav14
Posté le 10-07-2002 à 15:50:25  profilanswer
 

youdontcare a écrit a écrit :

tu dois désallouer tout ce que tu alloues.




sinon ?   :??: :D

n°174446
lorill
Posté le 10-07-2002 à 15:51:23  profilanswer
 

Sinon elle est pas désallouée...
 
(a question con, ...)
 
Edit:
Apres reflexion, c'est pas mal les garbage collectors et compteurs de références de tout poil. Ca limite la casse en milieu boulay.


Message édité par lorill le 10-07-2002 à 15:57:28
n°174462
xav14
Posté le 10-07-2002 à 16:04:34  profilanswer
 

mais qu'est-ce qu'on risque a ne pas désallouer la mémoire, parce que les profs de fac, y sont pas capables d'y répondre, mais y nous font désallouer

n°174463
djrom
Posté le 10-07-2002 à 16:06:57  profilanswer
 

C'est simple, quand tu ne désalloues pas ta mémoire, ton programme grossit au fur et à mesure de son exécution, ce qui est relativement embêtant, non ?

n°174464
lorill
Posté le 10-07-2002 à 16:07:47  profilanswer
 

Ben la mémoire n'est pas libérée, c'est tout. Le problème c'est que selon le systeme ou si le process se ferme mal, la mémoire n'est pas forcément réutilisables pour les autres programmes.  
 
Je suis sur que t'es pas le dernier a raler quand un jeu bouffe toute ta ram et ne t'en rends que la moitié, si ?
Ben voila, tu as ta réponse.

n°174467
evr
mm..
Posté le 10-07-2002 à 16:15:04  profilanswer
 

oue si tu la desalloues pas toi meme c'est ton OS qui va devoir le faire (+ ou - bien)
pis si tu le fais pas -> programmation de porci :D po bien


Message édité par evr le 10-07-2002 à 16:15:47
n°174476
xav14
Posté le 10-07-2002 à 16:23:07  profilanswer
 

merci pour les réponses  :)  
(et vive l'ada  :D )

n°174480
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 10-07-2002 à 16:26:34  profilanswer
 

xav14 a écrit a écrit :

mais qu'est-ce qu'on risque a ne pas désallouer la mémoire, parce que les profs de fac, y sont pas capables d'y répondre, mais y nous font désallouer




c'est quand même énorme ça....  :ouch:


---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le 10-07-2002 à 16:26:34  profilanswer
 

n°174563
LeGreg
Posté le 10-07-2002 à 17:12:48  profilanswer
 

xav14 a écrit a écrit :

mais qu'est-ce qu'on risque a ne pas désallouer la mémoire, parce que les profs de fac, y sont pas capables d'y répondre, mais y nous font désallouer




 
si tu desalloues pas, je ne t'embaucherai
pas comme programmeur :).
 
Les cas:  
- le plus simple (pour toi) : tu ne desalloues pas et il ne se passe rien.
- le plus general: tu programmes une appli, tu programmes comme un porc sans désallouer ou en désallouant de maniere aléatoire. Tu as une appli qui gonfle au fur et a mesure de son utilisation, ou bien qui plante sans prevenir.
- le pire: en plus de desallouer ta memoire, tu dois désallouer certaines ressources critiques qui pour des raisons X ou Y ne sont pas gérées automatiquement par le systeme d'exploitation. Au final, quand on utilise ton application on a regulierement des ecrans bleus (sous windows).
 
Je t'accorde que parfois les programmeurs essaient de bien coder mais ca devient tellement compliqué ces problemes
de gestion de memoire surtout quand on recupere du code existant..
 
LeGreg

n°174658
xav14
Posté le 10-07-2002 à 20:41:30  profilanswer
 

Harkonnen a écrit a écrit :

 
c'est quand même énorme ça....  :ouch:  




 
mouais
des fois y zont pas envies aussi  :D

n°174670
toum toum
Posté le 10-07-2002 à 21:28:30  profilanswer
 

xav14 a écrit a écrit :

 
 
mouais
des fois y zont pas envies aussi  :D  




 
Des fois, ils sont pas capables

n°175305
HelloWorld
Salut tout le monde!
Posté le 11-07-2002 à 16:57:52  profilanswer
 

C'est surtout une bonne habitude à prendre.
Si tu ne désalloue pas, l'OS le fera pour toi tout de même et dans la grande majorité des cas, ça ne changera rien de ne pas le faire.
Mais en prenant l'habitude de le faire tout le temps, tu te met à l'abri des rares cas ou cela pourra te poser problème. Car en informatique, si un problème a très peu de chance de se produire, alors il se produira. Et ce jour là, tu vas galérer.
C'est de la programmation propre, c'est tout.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°175320
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 11-07-2002 à 17:29:21  profilanswer
 

HelloWorld a écrit a écrit :

Si tu ne désalloue pas, l'OS le fera pour toi tout de même et dans la grande majorité des cas, ça ne changera rien de ne pas le faire.



 :heink:  
Ca dépend l'OS à mon avis... Je doute fort que ME soit aussi balaise pour désallouer que 2000/XP, et même ces derniers ont tendance à patiner dans la semoule en cas de non désallocation de grosse zone mémoire.


---------------
J'ai un string dans l'array (Paris Hilton)
n°175511
Musaran
Cerveaulté
Posté le 12-07-2002 à 00:53:48  profilanswer
 

1)Si tu n'arrives pas a désallouer correctement, c'est que ton programme est mal structuré.
 
2)Si tu ne désalloue pas, ton programme prends trop/de+ en + de mémoire, et tourne moins bien, et ça ne rends service ni à  l'utilisateur ni à toi.
Et il n'est pas certain que la mémoire soit quand même libérée par l'OS à la fin de l'exécution.
 
3)Si tu alloues avec new, tes objets ne seront jamais détruits.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°175513
Beretta Ve​xe
Posté le 12-07-2002 à 01:24:29  profilanswer
 

xav14 a écrit a écrit :

 
mouais
des fois y zont pas envies aussi  :D  




 
Bas la plus part du temps les pauvres on déjà a composer avec des élèves qui n'on que trés rarement approché un ordinateur, alors il on autre chose a foutre que de repondre au question existantiel du pourquoi du comment des principes de programation avec ce qui arrive a faire quelque chose qui tourne.

n°175825
HelloWorld
Salut tout le monde!
Posté le 12-07-2002 à 16:54:33  profilanswer
 

Ca dépend l'OS à mon avis... Je doute fort que ME soit aussi balaise pour désallouer que 2000/XP, et même ces derniers ont tendance à patiner dans la semoule en cas de non désallocation de grosse zone mémoire.
 
En C par exemple, si tu utilises malloc, tu utilises en fait la librairie CRT (C Run Time) qui fait des VirtualAlloc de L'OS.
Lorsque tu fais return de main(), la lib désalloue tout ce que tu n'a pas toi même desalloue, et une fois que le programme se termine, Windows desalloue ce que la lib n'aurait pas desallouer ...
Nan, je pense que desallouer la memoire est bien supporte par les OS, y compris WinME.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°175833
darkoli
Le Petit Dinosaure Bleu
Posté le 12-07-2002 à 17:15:10  profilanswer
 

HelloWorld a écrit a écrit :

Ca dépend l'OS à mon avis... Je doute fort que ME soit aussi balaise pour désallouer que 2000/XP, et même ces derniers ont tendance à patiner dans la semoule en cas de non désallocation de grosse zone mémoire.
 
En C par exemple, si tu utilises malloc, tu utilises en fait la librairie CRT (C Run Time) qui fait des VirtualAlloc de L'OS.
Lorsque tu fais return de main(), la lib désalloue tout ce que tu n'a pas toi même desalloue, et une fois que le programme se termine, Windows desalloue ce que la lib n'aurait pas desallouer ...
Nan, je pense que desallouer la memoire est bien supporte par les OS, y compris WinME.




 
Enfin c'est pas une raison pour ne pas désallouer la mémoire !!!


---------------
Le site de l'année :D (XHTML 1.0 strict) : http://darkoli.free.fr/index.html
n°177764
freewol
Ceci n'est pas une citation
Posté le 17-07-2002 à 12:31:13  profilanswer
 

ou alors tu mets en spécifications pour ton prog :
Config minimale :
proc > pentium 100
mem > 512 Mo
 
:lol:

n°177895
Carbon_14
Posté le 17-07-2002 à 15:24:11  profilanswer
 

Des mauvaises langues disaient qu'il suffisait (j'ai pas eu la patience) de lancer puis quitter (sans rien faire d'autre) Word 6.0 sous Windows 3.11 quinze à vingt fois pour faire planter/galérer le système, car c'était pas très très bien écrit :D :D, et de la mémoire était allouée mais pas libérée....
 
Windows se trouvait étranglé/étouffé car plus de ressources disponibles.
 
NB : le jour où j'ai rien à faire, ai encore un PC avec Word 6 ss Win 3.11, je peux vérifier...

mood
Publicité
Posté le   profilanswer
 


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

  gestion de la mémoire ?

 

Sujets relatifs
[JAVA @] logiciel de gestion [DELPHI vous pouvez venir aussi][Perl] Mémoire partagé en multi-thread
package F¨TP ,TELNET, gestion de fichiers..[VC++ MFC] Access - Question sur la gestion d'un champ OLE
=> Soft de gestion de LCD <= Y'a du monde de motivé pour aider?Allocation memoire et initialisation par memset.
Logiciel de gestion de parc informatique[DELPHI] Optimisation du code & gestion de la mémoire
Gestion mémoire et PointeursVisual C++ Gestion de la mémoire...
Plus de sujets relatifs à : gestion de la mémoire ?


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