Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Uso de realloc() en C: Sintaxis, mejores prácticas y ejemplo

¿Qué es realloc()?

realloc() es una función de la biblioteca estándar de C que redimensiona un bloque de memoria existente. Lo expande o reduce preservando su contenido. Esto hace que la gestión dinámica de memoria sea más eficiente, especialmente cuando el tamaño requerido cambia durante la ejecución.

Sintaxis

ptr = realloc(ptr, newSize);

Aquí, ptr apunta a un bloque asignado previamente y newSize es el tamaño deseado en bytes. Tras la llamada, ptr apuntará al primer byte del nuevo bloque. La función copia los datos originales a la nueva ubicación y libera el bloque antiguo si la reasignación tiene éxito.

Puntos clave a recordar

Ejemplo – Redimensionar un buffer de cadena

#include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char *buf = malloc(10); if (!buf) { perror("malloc"); return EXIT_FAILURE; } strcpy(buf, "Programming"); printf("%s\n", buf); char *tmp = realloc(buf, 20); // aumenta el tamaño del buffer if (!tmp) { free(buf); // el bloque original sigue válido perror("realloc"); return EXIT_FAILURE; } buf = tmp; strcat(buf, " in C"); printf("%s\n", buf); free(buf); return EXIT_SUCCESS; }

Ejemplo – Asignar y redimensionar un array de enteros

#include <stdio.h> #include <stdlib.h> int main(void) { int *arr = malloc(10 * sizeof(int)); if (!arr) { perror("malloc"); return EXIT_FAILURE; } /* ... usar el array ... */ int *tmp = realloc(arr, 50 * sizeof(int)); if (!tmp) { free(arr); perror("realloc"); return EXIT_FAILURE; } arr = tmp; printf("Array resized successfully\n"); free(arr); return EXIT_SUCCESS; }

Consejos prácticos

Lenguaje C

  1. Guía esencial: Cuándo y cómo usar un extintor de incendios de forma segura
  2. Dominando las pistolas de pintura: Guía profesional para cobertura uniforme y segura
  3. Uso Fácil de Termistor: Guía Paso a Paso con Arduino
  4. Dominando las Técnicas de Afiladora de Herramientas: Guía Práctica
  5. Aprovechando Azure DevOps: prácticas probadas para entrega acelerada
  6. Cómo el molibdeno moldea la industria moderna: usos, beneficios y dinámica de suministro
  7. Convierte tu rompecabezas terminado en una obra maestra atemporal con resina epoxi
  8. calloc() en C: Asignación de memoria inicializada a cero y ejemplo práctico
  9. Dominando la función free() en C: Guía práctica y ejemplo
  10. Uso de funciones impuras en VHDL: Mejorando legibilidad y mantenibilidad de FSM
  11. Dominando funciones VHDL: Guía práctica para diseño eficiente