Allocation mémoire [Résolu]

Messages postés
26
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
12 décembre 2009
- - Dernière réponse : memspell
Messages postés
4
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
23 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

Merci
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
3801
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 novembre 2019
90
3
Merci
Ce sont de très bonnes questions.

1) Il y a déjà eu des discussions dessus très intéressante. En voici les liens:
http://www.developpez.net/forums/d5097/c-cpp/cpp/differences-stack-heap/
qui parlent de:
http://www.gotw.ca/gotw/009.htm

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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 205 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cptpingu
Messages postés
26
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
12 décembre 2009
3
Merci
Merci CptPingu,

mais ma premiere question n'est pas à quoi servent Stack et Heap, mais juste savoir de où la mémoire est prise, à la RAM?

Merci pour la deuxième réponse, j'avais oublié le pointeur null arf!

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 205 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_cogno
Messages postés
3801
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 novembre 2019
90
3
Merci
Oui, oui, tout est dans la RAM.
Renseigne toi aussi, si ça t'intéresse, sur la mémoire physique et virtuelle.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 205 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cptpingu
Messages postés
26
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
12 décembre 2009
3
Merci
Merci Mister Pingu

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 205 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_cogno
Messages postés
4
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
23 janvier 2010
0
Merci
Hello,

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.

Cédric
Commenter la réponse de memspell