Exemple de mise en page d`un mémoire

Une fois que plus () retourne, la valeur de p fait référence à une variable déclarée dans plus (), mais toutes les variables locales déclarées dans plus () sont désinstallées une fois plus () retourne. Segment de données: contient des données (globales, statiques et locales) initialisées et non initialisées. Complètement à la différence des trois autres formats de matrice. Sur l`architecture d`ordinateur PC x86 standard, il croît vers l`adresse zéro; sur d`autres architectures, il pousse la direction opposée. En disant variable locale signifie que toutes les variables qui sont déclarées dans chaque fonction, y compris main () dans votre programme C. Toutefois, la disposition réelle de l`image en mémoire d`un programme est laissée entièrement au système d`exploitation, et souvent le programme lui-même ainsi. Chaque fonction est contenue dans une structure sur la pile appelée frame de pile. L`instruction print, qui dédiffère p, en suivant le pointeur vers l`adresse mémoire, peut échouer. Ceux-ci rendent la création d`objets plus lente et plus grande.

Comme le tas se remplit, exigence plus d`espace, la pause est définie sur les adresses plus élevées. Aux adresses supérieures est la pile et à l`adresse inférieure est le tas. La zone de pile contient la pile de programmes, une structure LIFO, généralement située dans les parties supérieures de la mémoire. Ici, ligne, col et canal sont la ligne, la colonne et le canal de la matrice à laquelle vous souhaitez accéder. La déclaration de variable locale est pour le nœud de variable, mais c`est juste un pointeur vers une certaine mémoire. Tout d`abord, dans main (), p attend le résultat de l`appel à plus (), qui a la valeur c. Comme vous le savez peut-être déjà qu`une fois qu`un objet est créé, c`est juste une série d`octets dans le tas. Segment de données non initialisé 4. Avec les grands espaces d`adressage modernes et les techniques de mémoire virtuelle, ils peuvent être placés presque n`importe où, mais ils continuent généralement à croître en sens inverse. Nous nous référons aux données stockées dans la mémoire via la variable a. Dans le corps de la fonction, les deux entiers sont additionnés, et le résultat stocké dans c, une variable déclarée localement dans le contexte de la fonction.

Chaque fois qu`un programme doit allouer de la mémoire globalement ou de manière dynamique, cette mémoire est allouée sur le tas, qui est partagée sur l`ensemble du programme indépendamment des appels de fonction. Segment de tas fait également partie de la mémoire RAM où les variables allouées dynamiquement sont stockées. Le nœud variable, lui-même, est déclaré sur la pile et dispose de suffisamment de mémoire pour stocker une adresse mémoire. Maintenant que vous comprenez les deux procédures d`allocation de mémoire différentes, nous allons zoomer et de prendre un plus grand regard sur la façon dont la mémoire dans les programmes est géré plus généralement. Comment sont stockés dans la mémoire dépend du format de matrice que vous choisissez. Une fois que p a été libéré, la mémoire référencée par la valeur du p peut être récupérée par d`autres allocations.

This entry was posted in 未分類. Bookmark the permalink.