gpt4 book ai didi

swift - 从具有 uint8_t ** 作为输出参数的 Swift 调用 native 方法

转载 作者:行者123 更新时间:2023-11-28 07:06:48 25 4
gpt4 key购买 nike

我有一个带有接口(interface)的C方法

size_t foo(uint8_t ** output)

这被导入到 Swift 中作为

func foo(_ output: UnsafeMutablePointer<UnsafeMutablePointer<UInt8>>) -> Int

如何从 Swift 调用此方法?

最佳答案

假设 foo() 分配一个 uint8_t 数组,把地址到 output 指向的内存位置,并返回分配数组的大小,你可以使用它来自 Swift 这样的

var output : UnsafeMutablePointer<UInt8> = nil
let size = foo(&output)
for i in 0 ..< size {
println(output[i])
}

您还必须决定谁负责发布分配的内存。如果 foo() 函数分配它使用malloc() 然后你可以用

从 Swift 释放它
free(output)

关于swift - 从具有 uint8_t ** 作为输出参数的 Swift 调用 native 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30254566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com