Red de conocimiento informático - Computadora portátil - En lenguaje C, ¿qué es la pila y qué es el montón?

En lenguaje C, ¿qué es la pila y qué es el montón?

1. Área de pila (pila): asignada y liberada automáticamente por el compilador, almacenando valores de parámetros de función, variables locales y otros valores. Las variables locales, las funciones del subproceso de tareas, etc. se colocan (utilizan) en la pila y la tasa de utilización de la pila es mayor. Opera como una pila en una estructura de datos. En particular, la pila pertenece al hilo y cada hilo tendrá su propia pila.

2. Área del montón (montón): generalmente lo asigna y libera el programador. Si el programador no lo libera, puede provocar una pérdida de memoria. Tenga en cuenta que es diferente del montón en la estructura de datos. El método de asignación es similar a una lista vinculada. Lo que es común es que malloc pertenece al área del montón, al igual que un área fija, y no se libera hasta que esté libre. algo similar a global y estático de.

Información ampliada

El compilador asigna y libera automáticamente la memoria de la pila. Tiene dos métodos de asignación: asignación estática y asignación dinámica.

1. El compilador completa automáticamente la asignación estática, como la asignación de variables locales (es decir, cuando se declara una variable de tipo int i en una función, el compilador abrirá automáticamente una memoria para almacenar). la variable i).

2. La asignación dinámica la asigna la función alloca, pero la asignación dinámica de la pila es diferente de la del montón. Su asignación dinámica la libera el compilador sin ninguna implementación manual.

Enciclopedia Baidu: pila

Enciclopedia Baidu: pila