Reasloc c

Reasloc c
En este artículo se discutirá el concepto de la función RealLoc () en el lenguaje de programación C C. Para comenzar con este concepto, debemos saber sobre el concepto de asignación de memoria y las diferentes funciones de asignación de memoria en C. Hay dos tipos de asignación de memoria en el lenguaje de programación C: asignación de memoria estática y asignación de memoria dinámica.

Asignación de memoria en C:

Los recursos son constantemente escasos. En todo momento, hemos trabajado para mejorar el uso de recursos. Esta ha sido la base de nuestro desarrollo. La asignación de memoria es una noción relacionada con este objetivo. Para que se puedan crear variables reales, la memoria debe asignarse a las variables que construimos. Ahora hay una distinción entre cómo creemos que suceden las cosas y cómo suceden. Cuando pensamos en hacer todo, pensamos en comenzar desde el principio; Sin embargo, cuando una computadora hace una variable 'X', es más como una distribución; El sistema solo elige una celda de memoria para X de un amplio grupo de celdas de memoria disponibles. Es como una habitación de hotel asignada al nombre de alguien de muchas habitaciones preexistentes gratuitas o vacantes. Este ejemplo probablemente aclaró cómo la computadora administra la asignación de memoria.

Ahora que se encuentran a los tipos de asignación de memoria que se permiten en el lenguaje de programación C son la asignación de memoria estática y la asignación de memoria dinámica. Cuando definimos las variables, estamos configurando todas las variables que se utilizarán para que el compilador comprenda lo que estamos haciendo porque la variable que se usa es una parte esencial del programa que el usuario quiere, no un símbolo de rojo flotando.

Ejemplo de la vida real

Cuando declaramos variables, el compilador las asigna a espacios de memoria vacantes como si estuvieran en un hotel con habitaciones vacías preexistentes que se asignarán a diferentes nombres del invitado. Como puede ver, esto se hace antes de que se ejecute el programa; No puede usar este enfoque para asignar variables mientras el programa se ejecuta. Aquí es donde entra en juego la asignación de memoria dinámica.

Ejemplo de programación

Tome una matriz como ejemplo, ya que el tamaño se declara antes, y no puede ajustar el tamaño de una matriz una vez que se haya declarado. Es posible que la matriz que especificó no sea lo suficientemente grande. Puede asignar manualmente la memoria durante el tiempo de ejecución para remediar este problema. Esto se llama asignación de memoria dinámica. Hay varias funciones de la biblioteca en el lenguaje de programación C que nos ayuda a asignar la memoria dinámicamente, que se definen en el archivo de encabezado ""; Las funciones son las siguientes:

  1. función malloc (),
  2. función calloc (),
  3. función reasloc (),
  4. Función Free ().

La sintaxis para la función Malloc

Malloc es la abreviatura de la asignación de memoria. Un bloque de memoria con el número especificado de bytes está reservado en la función malloc (). También devuelve un puntero vacío que puede convertirse en cualquier tipo de puntero. La sintaxis para la función MALLOC en la programación C se escribe a continuación:

#p = (Casttype*) malloc (tamaño);

Si tuviéramos que escribir una expresión para asignar memoria para una variable entera, se vería así,

p = (int *) malloc (100 * sizeOf (int));

La pieza de código escrita arriba deja de lado 400 bytes de espacio de memoria. La razón de esto es que el tipo de datos enteros tiene un tamaño de 4 bytes. El puntero "P" realiza un seguimiento del byte inicial de la memoria asignada.

Sintaxis para la función Calloc ()

La asignación contigua es la abreviatura del término "Calloc."En la programación C, entonces la función de calloc () se usa para asignar una cierta cantidad de memoria y posteriormente restablecerla a cero. Esta dirección de memoria se devuelve como un puntero vacío, que posteriormente puede convertirse en el tipo necesario. La función acepta dos argumentos que determinan la cantidad de memoria que se asignará como un todo. La función de sintaxis para calloc () en la programación C se escribe a continuación:

p = (Casttype*) calloc (n, tamaño);

Ahora analizaremos la función reasloc en la programación C.

La función reasloc () en c:

REALELOC significa Realegación. El método REALLOC () se puede utilizar para alterar el tamaño de la memoria anteriormente asignada si la memoria asignada dinámicamente es inadecuada o más de lo necesario. La función reasLOC () devuelve un puntero a un nuevo objeto con el tamaño proporcionado por el tamaño y desune el objeto antiguo a la que se hace referencia PTR. Hasta el menor de los dos tamaños, los elementos del nuevo objeto son similares a los del objeto anterior antes de la negociación. Cualquier bytes en el nuevo objeto que sea más grande que el tamaño del objeto antiguo tiene valores indefinidos. REALLOC () solo debe usarse para la memoria asignada dinámicamente; Vale la pena señalar. Se desconoce el comportamiento si el espacio de memoria no está asignado dinámicamente.

Sintaxis para la función RealLoc ()

La sintaxis para la función RealLoc () en la programación C se escribe a continuación:

# REALLOC (PTR, nuevo tamaño);

En la expresión anterior, RealLoc es una función que cambia de tamaño de la ubicación de memoria apuntada por PTR. El título de la variable de puntero que debe redimensionarse es "PTR". "Nuevo tamaño" se refiere al nuevo tamaño del área de memoria. Tiene el potencial de ser más pequeño o más grande que el tamaño actual.

Aunque todas estas funciones han asignado con éxito el espacio de la memoria, aún no son libres y tenemos que liberarlas explícitamente. Aquí es donde se requiere la función libre () para liberar el espacio asignado en la memoria. La sintaxis para la función Free () se escribe a continuación:

#Free (PTR);

"PTR" es el nombre del puntero cuyo espacio de memoria se liberará.

Ahora buscaremos ejecutar la función RealLoc () en el Ubuntu 20.04 entorno.

Implementación de la función RealLoc () en Ubuntu 20.04:

Como sabemos sobre la base de la función RealLoc (), ahora podemos implementar esta función en el Ubuntu 20.04 entorno. Para hacer nuestro código, inicie el terminal desde su escritorio de Ubuntu y escriba "Desktop de CD" para llegar al directorio de escritorio, luego, con este comando "toque", puede hacer un .archivo c con el nombre y la extensión de .C. Luego vaya a su escritorio y busque y abra su .archivo c. Ahora crearemos algún código en ese archivo para usar el método REALLOC () para reasignar la memoria.

Inicialmente, hemos agregado las dos bibliotecas más importantes del idioma C. Después de eso, comenzamos nuestro programa principal. Hemos declarado una variable de puntero y hemos hecho que su valor sea igual a "nulo". Que hemos utilizado el método RealLoc () y le han agregado dos parámetros. Se agrega la declaración "IF" para verificar la condición. Si la condición establecida está bien, el compilador ejecutará la instrucción printf.

Después de presionar el botón Guardar, cierre el archivo. Regrese al terminal y escriba "G ++" seguido de su nombre de archivo y el ".Extensión C "para producir el archivo de salida. Ahora puede ejecutar ese archivo escribiendo "./"Seguido de tu".Extensión para recibir la salida deseada.

Como puede ver, reasignamos efectivamente el espacio de memoria del puntero utilizando el método RealLoc (), y ahora tenemos una mejor comprensión de cómo funciona esta función en una aplicación C debido a este ejemplo.

Conclusión:

En este tutorial, estudiamos el concepto de asignación de memoria y sus diferentes tipos. El propósito de este artículo era aprender sobre los pros y los contras del método de asignación de memoria y dónde usarlos. Las diferentes funciones en el método de asignación de memoria dinámica también se discutieron con graves detalles en este artículo. Al final, también implementamos la función RealLoc () en el lenguaje de programación C en el Ubuntu 20.04 entorno para comprender mejor este concepto.