free()

free(<OFFSET del bloque de 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 el OFFSET o 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(), serán liberados automáticamente por el sistema al finalizar el programa.

Programa ejemplo:
PROGRAM ejemplo_free;

GLOBAL
    POINTER mitabla[1000];  // Puntero a una tabla de 1000 datos

BEGIN

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

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

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


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, como un ejemplo), y se libera la memoria.


Ver: free() - POINTER