Memory leaks cffi:是否将使用无外来对象数组元素?

Memory leaks cffi:是否将使用无外来对象数组元素?,memory-leaks,common-lisp,cffi,Memory Leaks,Common Lisp,Cffi,以下是我想做的: (defun do-some-fun-stuff (string-list) (let ((n (length string-list))) (cffi:with-foreign-object (array :string n) (loop for i below n for s in string-list do (setf (cffi:mem-aref array :string i) s))

以下是我想做的:

(defun do-some-fun-stuff (string-list)
  (let ((n (length string-list)))
    (cffi:with-foreign-object (array :string n)
      (loop for i below n
            for s in string-list
            do (setf (cffi:mem-aref array :string i) s))
      (call-some-foreign-function n array))))

我知道
array
本身将在离开
with-…
块时被释放,但是数组的元素呢?
(setf(cffi:mem-aref-array:string i)s)
表达式将为每个元素分配一个以null结尾的char*数组,对吗?我应该自己释放他们还是CFFI会帮我?我在文档或CFFI代码中都找不到明确的答案。

字符串可能也在其他地方使用,因此自动释放它们似乎没有多大意义。是的,但是--如果我想通过-…块将这些字符串的所有权传递到
之外,我会用
cffi:foreign string alloc
来分配它们。找到它:“…对于数组的每个元素…但是有一个修正:它还没有释放它们,这意味着我必须手动释放它们。