free

Sintaxis

#include <stdlib.h>

void free(void *ptr);

Descripción

Libera el bloque al que apunta ptr y que debe haber sido previamente reservado con malloc. Si ptr es NULL no hace nada. No pone a NULL ptr.

Valor devuelto

Ninguno.

Portabilidad

ANSI, POSIX

Ejemplo

En la función main primero se solicita el tamaño de una ristra y cada uno de los caracteres que la componen y luego se muestra el tamaño de la ristra.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (){
   int i, n;
   printf("Introduzca el tamaño de la ristra\n");
   scanf("%d",&n);
   /* Se reserva memoria dinámica para n caracteres (ver sizeof) */
   char *v = (char *) malloc(sizeof(char)*(n+1));
   if(v!=NULL){
      for(i=0;i<n;i++) {
         printf("Introduzca el carácter %d ",i);
         scanf("%c",&v[i]);
      }
      v[n]='\0';
      printf("El tamaño de la ristra es %d ",strlen(v));
      free(v);                 /* Se libera la memoria dinámica previamente reservada */
   }
   return 0;
}