Diferencia entre revisiones de «free()»

De ArduWiki
Saltar a: navegación, buscar
(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

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

ptr
Puntero a un bloque de memoria previamente asignado con malloc, Calloc o realloc.

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);
}

Vea también

Referencias