Typecast UnsafeMutablePointer 为UnsafeMutablePointer <#Struct type#>(Typecast UnsafeMutablePointer to UnsafeMutablePointer<#Struct type#>)
我在Swift中创建了一个名为RGB的结构,很简单:
struct PixelRGB { var r: CUnsignedChar = 0 var g: CUnsignedChar = 0 var b: CUnsignedChar = 0 init(red: CUnsignedChar, green: CUnsignedChar, blue: CUnsignedChar) { r = red g = green b = blue } }我有一个指针var imageData: UnsafeMutablePointer<PixelRGB>! 。
我希望给这个指针malloc一些空间,但是malloc返回UnsafeMutablePointer<Void> ,我不能像下面这样UnsafeMutablePointer<Void>它:
imageData = malloc(UInt(dataLength)) as UnsafeMutablePointer<PixelRGB> // 'Void' is not identical to `PixelRGB`无论如何解决这个问题? 感谢您的帮助!
I created a struct in Swift called RGB, simple enough:
struct PixelRGB { var r: CUnsignedChar = 0 var g: CUnsignedChar = 0 var b: CUnsignedChar = 0 init(red: CUnsignedChar, green: CUnsignedChar, blue: CUnsignedChar) { r = red g = green b = blue } }And I have a pointer var imageData: UnsafeMutablePointer<PixelRGB>!.
I wish to malloc some space for this pointer, but malloc returns UnsafeMutablePointer<Void> and I cannot cast it like below:
imageData = malloc(UInt(dataLength)) as UnsafeMutablePointer<PixelRGB> // 'Void' is not identical to `PixelRGB`Anyway to solve this? Thank you for your help!
最满意答案
我想你想说的是这样的:
imageData = UnsafeMutablePointer<PixelRGB>.alloc(dataLength)I think what you want to say is something like this:
imageData = UnsafeMutablePointer<PixelRGB>.alloc(dataLength)更多推荐
发布评论