Ir al contenido principal

Destacado

Desarrollo web Bootcamp

  Introducción a la Programación La programación es el proceso de diseñar y escribir instrucciones que las computadoras entienden para realizar tareas específicas. Estas instrucciones se conocen como código , y permiten a los desarrolladores crear aplicaciones, sitios web, juegos y mucho más. Lenguajes de Programación Comunes en el Desarrollo Web En el desarrollo web, los lenguajes más utilizados incluyen: HTML : Define la estructura del contenido en una página web. CSS : Estiliza y da diseño a los elementos de HTML. JavaScript : Agrega interactividad y funcionalidades dinámicas a las páginas web.      PHP y Python : Son lenguajes de servidor para manejar la lógica y los datos. SQL : Sirve para gestionar bases de datos. Sintaxis Básica La sintaxis es un conjunto de reglas que determina cómo escribir código en un lenguaje específico. Es fundamental para que el programa funcione correctamente. Por ejemplo: javascript let mensaje = "¡Hola Mundo!" ; console . log (mens...

Asignación Dinámica de Memoria

Introducción

Los programas pueden crear variables globales o locales. Las variables declaradas globales en sus programas se almacenan en posiciones fijas de memoria en la zona conocida como segmento de datos del programa , y todas las funciones pueden utilizar estas variables. Las variables locales se almacenan en la pila(stack) existen solo mientras estan activas las funciones que estan declaradas. Es posible, crear variables static (similares a las globales) que se almacenan en posiciones fijas de memoria , pero solo estan disponibles en el módulo o función en que se declaran su espacio de almacenamiento es el segmento de datos.almacenamiento es el segmento de datos.

Todas estas clases de variables comparten una característica común: se definen cuando se compila el programa. Esto significa que el cornpilador reserva (define) espacio para almacenar valores de los tipos de datos declarados. Es decir, en el caso de las variables globales y locales se ha de indicar al compilador exactamente cuántas y de qué tipo son las variables a asignar. O sea, el espacio de almacenamiento se reserva en el momento de la Compilación.
Sin embargo, no siempre es posible conocer con antelación a la ejecución cuanta memoria se debe reservar al programa. En C, se asigna memoria en el momento de la ejecución en el montículo o montón (heap), mediante las funciones mallo@)(, realloo( ), calloa( ) y free( ), que asignan y liberan la memoria de una zona denominada almacén libre.

Gestión Dinámica de la memoria

Consideremos un programa que evalúe las calificaciones de los estudiantes de una asignatura.El programa almacena cada una de las calificaciones en los elementos de una lista o tabla(array) y el tamaño del array debe ser lo suficiente grande para contener total de alumnos matriculados en la asignatura.
Un ejemplo es cuando declaramos un arreglo
int blog[40];

este reserva 40 enteros , un número fijo de elementos. Los arrays son un método muy eficaz cuando se conoce su longitud o tamaño en el momento de escribir el programa. Sin embargo, presenta un grave incoveniente si el tamaño del array solo se conoce en el momento de la ejecución. Las sentencias siguientes producirían un error durante la compilación.
scanf("%d",&num_visitantes);
int blog[num_visitantes]


ya que el compilador requiere que el tamaño del array sea constante. Sin embargo, en numerosas
ocasiones no se conoce la memoria necesaria hasta el momento de la ejecución. Por ejemplo, si se desea
almacenar una cadena de caracteres tecleada por el usuario, no se puede prever, a priori, el tamaño del
array necesario, a menos que se reserve un array de gran dimensión y se malgaste memoria cuando no
se utilice. En el ejemplo anterior, si el número de alumnos de la clase aumenta, se debe variar la longitud
del array y volver a compilar el programa. El método para resolver este inconveniente es recurrir a
punteros y a técnicas de asignación dinámica de memoria.
El espacio de la variable asignada dinámicamente se crea durante la ejecución del programa, al
contrario que en el caso de una variable local cuyo espacio se asigna en tiempo de compilación. La
asignación dinámica de memoria proporciona control directo sobre los requisitos de memoria de su
programa. El programa puede crear o destruir la asignación dinámica en cualquier momento durante la
ejecución. Se puede determinar la cantidad de memoria necesaria en el momento en que se haga la
asignación. Dependiendo del modelo de memoria en uso, se pueden crear variables mayores de 64 K.
El código del programa compilado se sitúa en segmentos de memoria denominados segmentos de
código. Los datos del programa, tales como variables globales, se sitúan en un área denominada
segmento de datos. Las variables locales y la información de control del programa se sitúan en un área
denominada pila. La memoria que queda se denomina memoria del montículo o almacén libre. Cuando
el programa solicita memoria para una variable dinámica, se asigna el espacio de memoria deseado
desde el montículo

Almacén libre (freestore)
En C las funciones malloc(), realloc(), calloc() y free() asignan y liberan memoria de un bloque de memoria denominado el monticulo del sistema. Las funciones malloc (), calloc() y realloc() asignan memoria utilizando asignacion dinámica debido a que pude gestionar la memoria durante la ejecución de un programa; estas funciones requieren generalmente ,moldeado .







Comentarios

Entradas populares