Swift中的calloc

ses*_*360 4 objective-c swift

如何将以下ObjectiveC语句转换为SWIFT:

UInt32 *pixels;
pixels = (UInt32 *) calloc(height * width, sizeof(UInt32));
Run Code Online (Sandbox Code Playgroud)

我试着做以下事情:

var pixels: UInt32
pixels = (UInt32)calloc(height * width, sizeof(UInt32))
Run Code Online (Sandbox Code Playgroud)

我收到错误消息:

Int不可转换为UInt

并且(UInt32)Casting也不起作用.有人可以给我一些建议吗?我还在与SWIFT苦苦挣扎.谢谢.

car*_*ess 5

这是在swift中分配该数组的一种更简单的方法:

var pixels = [UInt32](count: height * width, repeatedValue: 0)
Run Code Online (Sandbox Code Playgroud)

如果这就是你真正想做的事情.

但是,如果由于某种原因需要来自calloc的指针,请使用:

let pixels = calloc(UInt(height * width), UInt(sizeof(UInt32)))
Run Code Online (Sandbox Code Playgroud)

虽然类型pixels必须是一种类型UnsafeMutablePointer<T>,但你可以像处理其余代码中的swift指针一样处理它.