¿Qué es el montón en C y C?
El montón del que estamos hablando es el espacio de memoria aplicado por el programador. En C/C, puedes entenderlo como: todo el espacio de puntero no constante. Correspondiente al montón, hay pila, área estática, área constante (const) y área de código de programa. Estos son los espacios de memoria que se deben solicitar para ejecutar el programa.
La principal diferencia entre el montón y otras áreas de memoria es que el programador solicita, libera y administra el montón (en lugar de que el sistema y el programa lo asignan y liberan automáticamente) y es dinámico; La otra es que otras áreas tienen tamaños fijos y el tamaño del montón solo está limitado por el tamaño de la memoria y la memoria virtual. Es decir, en teoría, el espacio del montón que puede solicitar es infinito.
Ejemplo: main()?{const?char*?m?=?"123"; //"123"?área constante, m está en la pila (los punteros mismos están en la pila, lo mismo a continuación) char?s[]?=?"abc";?//Área constante char?*p3?=?"123456";?//Área constante estática?int?c?=0;?//Global inicialización (estática) Area?char?*p1,*p2;p1?=?(char?*)malloc(10);?//El área asignada de 10 bytes está en el área del montón. ?p2?=?new?char[20];?//El área asignada de 20 bytes está en el área del montón.
El lenguaje C se llama C porque el lenguaje C se deriva del lenguaje B inventado por Ken Thompson, y el lenguaje B se deriva del lenguaje BCPL. En 1967, Martin Richards de la Universidad de Cambridge simplificó el lenguaje CPL, dando como resultado el lenguaje BCPL (Lenguaje de programación combinado básico).
El lenguaje C es un lenguaje de programación informática general y se utiliza ampliamente. El objetivo de diseño del lenguaje C es proporcionar un lenguaje de programación que pueda compilarse fácilmente, manejar memoria de bajo nivel, generar una pequeña cantidad de código de máquina y que pueda ejecutarse sin ningún soporte de entorno de ejecución.
Aunque el lenguaje C proporciona muchas funciones de procesamiento de bajo nivel, aún mantiene buenas características multiplataforma. Los programas en lenguaje C escritos en una especificación estándar se pueden compilar en muchas plataformas informáticas, incluso incluyendo algunos procesadores integrados (únicos). -microcomputadora con chip o MCU) y supercomputadoras y otras plataformas operativas.