作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 UnsafeMutableRawPointer 分配内存:
let p = UnsafeMutableRawPointer.allocate(bytes: 1000, alignedTo: MemoryLayout<UInt8>.alignment)
// do stuff
p.deallocate(bytes: 1000, alignedTo: MemoryLayout<UInt8>.alignment)
分配后,我想初始化内存,即将0x00写入我刚刚分配的所有1000字节。尽管进行了谷歌搜索,但我还是不知道该怎么做。
“做事”是对 C 库的调用,它将一些字节写入指针;我的_c_函数(p)
不幸的是,C 函数希望所有字节都为 NULL。我只有一个静态库,我无法更改 C 代码。
最佳答案
有initializeMemory(as:from:count:)
:
Initializes the memory referenced by this pointer with the values starting at the given pointer, binds the memory to the values’ type, and returns a typed pointer to the initialized memory.
示例(Swift 4.2):
let p = UnsafeMutableRawPointer.allocate(byteCount: 1000, alignment: MemoryLayout<UInt8>.alignment)
p.initializeMemory(as: UInt8.self, repeating: 0, count: 1000)
// Do stuff ...
p.deallocate()
initializeMemory()
方法返回一个类型指针,以防你需要那个,所以你也可以写
let uint8ptr = p.initializeMemory(as: UInt8.self, repeating: 0, count: 1000)
// UnsafeMutablePointer<UInt8>
关于swift - 如何在 UnsafeMutableRawPointer 处初始化内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52879825/
我是一名优秀的程序员,十分优秀!