comprender el uso de pila y acumular en c
Administrar la memoria de manera efectiva es crucial en la programación C. Al determinar dónde almacenar las variables, uno debe decidir entre la pila y el montón
pila vs. Heap: una cuestión de vida útil
contrariamente a la creencia popular, el rendimiento no es el factor principal para seleccionar entre la pila y el montón. La diferencia clave se encuentra en la vida útil de las variables.
Heap: se almacena objetos, raramente usados variables y grandes estructuras de datos que necesitan sobrevivir a su función de declaración.
Ejemplos para claridad [&]
en este ejemplo:
class Thingy; Thingy* foo( ) { int a; // Stack-allocated integer Thingy B; // Stack-allocated Thingy object Thingy *pointerToB = &B; // Pointer to stack-allocated object Thingy *pointerToC = new Thingy(); // Heap-allocated Thingy object // Safe: Heap-allocated Thingy outlives foo() return pointerToC; // Unsafe: Stack-allocated Thingy will be destroyed upon foo() return return pointerToB; }a y B se almacenan en la pila porque son locales a foo ().
pointerTob apunta a un objeto de pila. foo().
Understanding the stack concept requires a deeper dive into the máquina subyacente. "Heap" y "Stack" son inventos de compiladores, y la memoria de la computadora es simplemente una variedad de direcciones. Al examinar conceptos como la pila de llamadas y la convención de llamadas, uno puede comprender cómo la máquina ejecuta funciones y administra la memoria.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3