您可以像如何通过使用char
**参数将Swift字符串数组传递给C函数中的步骤类似。由于
const参数数组的-ness 不同 ,并且存在一个终止符
nil(一定不能传递给
strdup()),因此它有所不同。
这是应该如何工作的:
let array: [String?] = ["name1", "name2", nil]// Create [UnsafePointer<Int8>]:var cargs = array.map { .flatMap { UnsafePointer<Int8>(strdup()) } }// Call C function:let result = command(&cargs)// Free the duplicated strings:for ptr in cargs { free(UnsafeMutablePointer(mutating: ptr)) }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)