C / C ++ tutorial, detallado memoria C / C ++ en cuatro distritos

el área de código 1

La instrucción de máquina ejecutado por la CPU. el área de código suele ser una compartida (es decir, la ejecución posterior del programa puede llamar), que puede ser compartida con el propósito del programa se ejecuta con frecuencia, sólo necesita tener una etiqueta en la memoria. el área de código normalmente de sólo lectura, de sólo lectura razón es para evitar que accidentalmente modificar sus instrucciones del programa. Además, el código de área también está planeando una información variable local.

Resumen: todo el código que escriba será puesto en el área de código, las características del área de código es compartido y de sólo lectura.

2 de área global

Los principales datos almacenados en las zonas globales son: variables globales, las variables estáticas, constantes (tales como las constantes de cadena)

Hay muchos nombres para la zona global: área global, estática, de datos, área estática global, área global estática

Esta parte puede ser subdividido en área de datos y el área bss

área de datos 2.1

los datos almacenados en la zona principal ya se ha inicializado las variables globales, las variables estáticas y constantes

área de 2,2 bss

bss el área principal de almacenamiento no está inicializado las variables globales, las variables estáticas, estos datos no inicializados antes de que el sistema de la ejecución del programa se inicializan automáticamente a 0 o NULL

2.3 área constante

región constante es una pequeña región dividida en el área global, las constantes que se almacena, las variables globales como las constantes de cadena modificada const, etc.

En VS resultados son como sigue:

Resumen: Global Area se almacena en variables globales, las variables estáticas y constantes

Después de programa de generación está dirigido por las dos regiones, la zona de apilamiento y el área montón

zona 3 pila (stack)

Esta última pila se hace avanzar fuera de la estructura de la memoria, es liberado asigna automáticamente por el compilador, los parámetros de la función de almacenamiento, los valores de retorno, las variables locales. En tiempo real de carga y programa de liberación se está ejecutando, por lo tanto, el ciclo de vida de las variables locales para la aplicación para liberar la longitud del espacio de pila.

vs resultados operativos como sigue

4 heap (montón)

Montón es un recipiente grande, su capacidad es mucho mayor que la pila, pero la pila no es tan avanzada a cabo después de la orden. Para la asignación de memoria dinámica. BSS está situado entre la pila y el área de pila en el área de memoria. En general, si el programador no libera, se recuperó al final del programa asignado por el programador y liberado por el sistema operativo.

vs los resultados operativos de la siguiente manera:

Cuando llevamos a cabo juntos en algunos casos, se puede ver la memoria de cada división regional es muy organizado. Cada región de no interferencia, el área de dirección de datos está muy cerca

Publicado 682 artículos originales · ganado elogios 1391 · Vistas 1.71 millones +

Supongo que te gusta

Origin blog.csdn.net/itcast_cn/article/details/105203991
Recomendado
Clasificación