void free( void * bloque_memoria )


Descripción:

Libera un bloque de memoria dinámica que ha sido reservado anteriormente con la función malloc()

Se requiere como parámetro la dirección de memoria en la que comienza el bloque, que es el valor que se obtiene al reservarlo.

Los bloques de memoria que no se liberen con la función free(), NO serán liberados automáticamente por el sistema al finalizar el programa, por lo que tendrá que tener especial cuidado cuando asigne memoria de liberarla.


int * mitabla;
int contador;

MAIN_PROGRAM_CDIV

BEGIN_PROGRAM

    //...

    mitabla = (int *) malloc(sizeof(int) * 1000); // Solicita 1000 posiciones de memoria

    for (contador = 0;contador < 1000; contador++) // Accede a los datos
        mitabla[contador] = -1;

    free(mitabla);           // Libera la memoria ocupada por la tabla

END_PROGRAM

Este pequeño ejemplo muestra como se puede definir un puntero a una tabla (con el puntero no se reserva espacio para los datos de la tabla), y como solicitar memoria para esta con la función malloc().

Una vez solicitada la memoria para la tabla de datos se accede a los mismos (se inicializan a -1, en el ejemplo), y se libera la memoria.


Ver: malloc()