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それ自体が解放されるということはわかりましたが、配列の要素はどうでしょうか。この式は、要素ごとに null で終わる char* 配列を割り当てますよね? 自分で解放する必要がありますか? それとも CFFI が解放してくれますか? ドキュメントにもCFFIコードにも決定的な答えは見つかりませんでした。with-...(setf (cffi:mem-aref array :string i) s)

4

0 に答える 0