2

这是我正在尝试做的事情:

(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 代码中都找不到明确的答案。

4

0 回答 0