【发布时间】:2018-10-18 17:50:08
【问题描述】:
我正在使用 UnsafeMutableRawPointer 分配内存:
let p = UnsafeMutableRawPointer.allocate(bytes: 1000, alignedTo: MemoryLayout<UInt8>.alignment)
// do stuff
p.deallocate(bytes: 1000, alignedTo: MemoryLayout<UInt8>.alignment)
分配后,我想初始化内存,即将我刚刚分配的所有 1000 个字节写入 0x00。尽管谷歌搜索,我就是不知道该怎么做。
“do stuff”是对 C 库的调用,它将一些字节写入指针; my_c_func(p)
不幸的是,C 函数希望所有字节都为 NULL。我只有一个静态库,我无法更改 C 代码。
【问题讨论】:
-
请详细说明您要完成的工作。在 Swift 3+ 中,有许多 API 可以为您进行内存管理,例如
[UInt8](repeating: 0x0, count: 1000) -
我会修改问题。
-
p.initializeMemory(...)呢? -
谢谢大家,让我试试。我不太了解 Swift。
标签: swift