[swift-users] How to malloc in Swift 3
Joe Groff
jgroff at apple.com
Fri Sep 23 15:23:14 CDT 2016
> On Sep 23, 2016, at 1:55 AM, Gerriet M. Denkmann via swift-users <swift-users at swift.org> wrote:
>
>
>> On 23 Sep 2016, at 15:47, Gerriet M. Denkmann via swift-users <swift-users at swift.org> wrote:
>>
>> This used to work in Swift 2.2:
>>
>> var bitfield: UnsafeMutablePointer<UInt8>?
>> bitfield = UnsafeMutablePointer<UInt8>( malloc( 888 ) )
>>
>> How is this written in Swift 3.0?
>
> To answer my own question:
> This works:
> var bitfield: UnsafeMutableRawPointer
> bitfield = UnsafeMutableRawPointer( malloc(888))
>
> But then this stops working:
> let theByte = self.bitfield[ 5 ]
>
> Somehow the bitfield must know that it is a field of bytes (not shorts, ints or whatever). But how?
The RawPointer types provide methods that can load a value with a given offset and type for you. IIRC, `bitfield.load(fromByteOffset: 0, as: UInt8.self)` will do what you want.
-Joe
More information about the swift-users
mailing list