Gestión de almacenamiento de memoria C ++

BSS (Bloque iniciado por símbolo) generalmente se refiere a un área de memoria utilizada para almacenar variables globales no inicializadas y variables estáticas en el programa. Las características son: legible y grabable, el segmento BSS se borrará automáticamente antes de ejecutar el programa. Por lo tanto, la variable global no inicializada se ha convertido en 0 antes de que se ejecute el programa.

Segmento de datos: el segmento de datos generalmente se refiere a un área de memoria utilizada para almacenar variables globales inicializadas en el programa. El segmento de datos pertenece a la asignación de memoria estática.

Segmento de código: el segmento de código (segmento de código / segmento de texto) generalmente se refiere a un área de memoria utilizada para almacenar el código de ejecución del programa. El tamaño de esta área se determina antes de que se ejecute el programa, y ​​el área de memoria generalmente es de solo lectura. Algunas arquitecturas también permiten que el segmento de código se pueda escribir, es decir, permitir que se modifique el programa. En el segmento de código, también es posible incluir algunas variables constantes de solo lectura, como las constantes de cadena.

Montón (montón): el montón se utiliza para almacenar el segmento de memoria asignado dinámicamente en el proceso de ejecución, su tamaño no es fijo, puede expandirse o reducirse dinámicamente. Cuando el proceso llama a malloc y otras funciones para asignar memoria, la memoria recién asignada se agrega dinámicamente al montón (el montón se expande); cuando se usan funciones libres y otras para liberar memoria, la memoria liberada se elimina del montón (el montón se reduce)

Pila (pila): la pila también se llama pila, que es una variable local creada temporalmente por el usuario para almacenar el programa, es decir, la variable definida en nuestro soporte de función "{}" (pero no incluye la variable declarada por medios estáticos, estáticos en el segmento de datos Almacenar variables). Además, cuando se llama a la función, sus parámetros también se insertarán en la pila del proceso de llamada, y después de que finalice la llamada, el valor de retorno de la función también se almacenará nuevamente en la pila. Debido a la función avanzada de retraso de la pila, la pila es particularmente conveniente para guardar / restaurar el sitio de la llamada. En este sentido, podemos pensar en la pila como un área de memoria para registrar e intercambiar datos temporales.

Publicado 9 artículos originales · me gusta 0 · visitas 253

Supongo que te gusta

Origin blog.csdn.net/a_465240/article/details/105464915
Recomendado
Clasificación