Tag: unsafemutablepointer

Swift 3 UnsafeMutablePointer初始化C类型float **

在Swift 3中,我需要将数据发送到接受float **输入的C对象。 在Swift 2中,我曾经声明一个UnsafeMutablePointer< UnsafeMutablePointer> ,构造一个swift数组(仅用于init!),并将其传递给指针,它工作正常: var bufferOut: UnsafeMutablePointer< UnsafeMutablePointer>? arrayOut = Array(repeating: Array(repeating: 0, count: Int(size1), count: Int(size2)) bufferOut = UnsafeMutablePointer< UnsafeMutablePointer>(arrayOut) 现在Swift 3中全部破坏了! 传递C-Style float**并初始化它的最快捷的方法是什么? 在UnsafeMutablePointer< UnsafeMutablePointer>分配值的最佳方法是什么? Documentations说对于T **应该使用AutoreleasingUnsafeMutablePointer但实际上我从未设法构建一个! 请注意,我并不真正关心上面示例中的数组! 如果我可以直接使用已知容量初始化指针,我会的。 注意 : UnsafeRawPointer的预期用例部分描述了有用的情况,例如C数组和C缓冲区,但是为上述结构翻译这些方法并不明显!

在Swift中使用C函数,将函数作为参数

我正在写一个C数学库的包装器。 每个函数都将一个或两个函数作为参数。 但是,这些子函数(以及父函数)的参数不是Swifty -hence包装器。 我已经清理了示例代码,只显示了三个主要部分:c-library函数,将传递给包装器的所需Swift函数(未显示主体,但环绕c-library函数),以及必需的C函数forms。 //C library function, that calls the passed function dozens, hundreds or thousands of times, each time it changes the data provided in p, and uses the output from x //The Swift arrays are passed as pointers, and the length of the and x array are m and n respectively returnValue […]