LISP and C cannot in general share memory so the FLI needs to make a temporary foreign object from the Lisp String, pass that to C, and then convert the data in that foreign object back to a Lisp object when C returns.
LispWorks Foreign Language Interface User Guide and Reference Manual - 14 Mar 2008