cs_cogno
Messages postés26Date d'inscriptiondimanche 6 décembre 2009StatutMembreDernière intervention12 décembre 2009
-
6 déc. 2009 à 18:57
memspell
Messages postés4Date d'inscriptionjeudi 21 janvier 2010StatutMembreDernière intervention23 janvier 2010
-
22 janv. 2010 à 00:17
Bonjour à tous.
Je me posais les deux questions suivantes:
1/ Quand on parle de la pile et du tas, c'est un espace mémoire alloué dans la RAM?
2/ Si j'exécute un programme que j'ai développé sur un PC, et que ce PC a disons 512 Mo de mémoire vive. Si dans mon programme j'alloue (avec "new") disons 600 Mo d'espace pour un pointeur, que se passe-t-il?
Ca peut sembler bête comme questions, mais c'est vrai que je traine ca depuis un pti moment maintenant, donc si on pouvait m'aider
2) Si tu n'as plus d'espace pour un programme, celui-ci ne peut plus allouer. S'il tente d'allouer de la mémoire, le système refuse.
Par exemple: Un malloc peut échouer (et renvoyer NULL), s'il ne peut allouer par manque de place.
Tu as ici des informations intéressantes sur la manière dont réagit malloc, et sa limite maximale d'allocation:
http://en.wikipedia.org/wiki/Malloc
C'est une bonne question, lorsqu'un process se charge en mémoire il execute ses instructions d'initialisation dont la creation de la stack qui est un espace alloué dynamiquement dans la mémoire dédiée au process.
La taille de la stack est limitée et elle est en tout point semblable à la mémoire alloué dans le heap à la différence que celui-ci n'as pour limite que la quantité de mémoire disponible.