free-foreign-object function deallocates the space in memory pointed to by pointer, which frees the memory for other uses. The address of pointer is the start of a block of memory previously allocated by allocate-foreign-object.
In the following example a boolean type is defined and an instance is created with memory allocated using allocate-foreign-object. The function
free-foreign-object is then used to free up the memory used by the boolean.
(fli:define-c-typedef BOOL (:boolean :int))
(setq point (fli:allocate-foreign-object :type 'BOOL))
LispWorks Foreign Language Interface User Guide and Reference Manual - 16 Feb 2015