Función realloc () en la biblioteca C: ¿Cómo se usa? Aprenda con el ejemplo

Tabla de contenido:

Anonim

¿Qué es realloc ()?

realloc () es una función de la biblioteca C para agregar más tamaño de memoria a los bloques de memoria ya asignados. El propósito de la reasignación en C es expandir los bloques de memoria actuales dejando el contenido original como está. La función realloc () ayuda a reducir el tamaño de la memoria previamente asignada por las funciones malloc o calloc. realloc significa reasignación de memoria.

Sintaxis para realloc en C

ptr = realloc (ptr,newsize);

La declaración anterior asigna un nuevo espacio de memoria con un tamaño específico en la variable newsize. Después de ejecutar la función, el puntero volverá al primer byte del bloque de memoria. El nuevo tamaño puede ser mayor o menor que la memoria anterior. No podemos estar seguros de que si el bloque recién asignado apuntará a la misma ubicación que la del bloque de memoria anterior. La función de reasignación en C copiará todos los datos anteriores en la nueva región. Se asegura de que los datos permanezcan seguros.

Por ejemplo:

#include int main () {char *ptr;ptr = (char *) malloc(10);strcpy(ptr, "Programming");printf(" %s, Address = %u\n", ptr, ptr);ptr = (char *) realloc(ptr, 20); //ptr is reallocated with new sizestrcat(ptr, " In 'C'");printf(" %s, Address = %u\n", ptr, ptr);free(ptr);return 0;} 

Cómo utilizar realloc ()

El siguiente programa en C demuestra cómo usar realloc en C para reasignar la memoria.

#include #include int main() {int i, * ptr, sum = 0;ptr = malloc(100);if (ptr == NULL) {printf("Error! memory not allocated.");exit(0);}ptr = realloc(ptr,500);if(ptr != NULL)printf("Memory created successfully\n");return 0;}

Resultado de la reasignación en el ejemplo de C:

Memory created successfully

Siempre que la reasignación da como resultado una operación fallida, devuelve un puntero nulo y también se liberan los datos anteriores.