Allocation mémoire [Résolu]

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

5 réponses

Messages postés
3809
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
22 avril 2020
105
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
Messages postés
26
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
12 décembre 2009

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!
Messages postés
3809
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
22 avril 2020
105
Oui, oui, tout est dans la RAM.
Renseigne toi aussi, si ça t'intéresse, sur la mémoire physique et virtuelle.
Messages postés
26
Date d'inscription
dimanche 6 décembre 2009
Statut
Membre
Dernière intervention
12 décembre 2009

Merci Mister Pingu
Messages postés
4
Date d'inscription
jeudi 21 janvier 2010
Statut
Membre
Dernière intervention
23 janvier 2010

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