Diferencia entre revisiones de «free()»
De ArduWiki
(Página creada con «== Descripción == Desasignar bloque de memoria. Un bloque de memoria asignado previamente por una llamada a malloc, Calloc o realloc está desasignado, volvie...») |
(→Ejemplo) |
||
Línea 21: | Línea 21: | ||
== Ejemplo == | == Ejemplo == | ||
− | + | <pre> | |
+ | void funcion(){ | ||
+ | int * buffer1, * buffer2, * buffer3; | ||
+ | buffer1 = (int*) malloc(100* sizeof(int)); | ||
+ | buffer2 = (int*) calloc(100, sizeof(int)); | ||
+ | buffer3 = (int*) realloc(buffer2, 500*sizeof(int)); | ||
+ | free (buffer1); | ||
+ | free (buffer3); | ||
+ | } | ||
+ | </pre> | ||
== Vea también == | == Vea también == |
Revisión del 13:20 15 jul 2018
Contenido
Descripción
Desasignar bloque de memoria.
Un bloque de memoria asignado previamente por una llamada a malloc, Calloc o realloc está desasignado, volviendo a estar disponible para otras asignaciones.
Sintaxis
free(ptr);
Parámetros
Retorno
Nada
Advertencias
- Si ptr no apunta a un bloque de memoria asignado con las funciones malloc, Calloc o realloc, causa un comportamiento indefinido.
- Si ptr es un puntero nulo, la función no hace nada.
- Tenga en cuenta que esta función no cambia el valor de ptr en sí, por lo tanto, todavía apunta a la misma ubicación (ahora no válida).
Ejemplo
void funcion(){ int * buffer1, * buffer2, * buffer3; buffer1 = (int*) malloc(100* sizeof(int)); buffer2 = (int*) calloc(100, sizeof(int)); buffer3 = (int*) realloc(buffer2, 500*sizeof(int)); free (buffer1); free (buffer3); }