这是我正在尝试做的事情:
(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代码中找到明确的答案。