如何判断 malloc 在 iOS 上的 swift 中是否失败?



如何检测 malloc 在 swift 中是否失败?

最终目标是简单地分配所需的空间量,如果ios无法分配它,请优雅地向用户报告(而不是终止)。

当我尝试下面的代码时,指针永远不会为零,errno 始终为 0。

let pointer : UnsafeMutableRawPointer? = malloc(fileSize)
print("errno = (errno)")
if (pointer == nil) {
print("Malloc failed")
}

为什么要在 Swift 中使用malloc

let pointer = UnsafeMutablePointer<UInt8>.allocate(capacity: fileSize)

更重要的是,在什么情况下读取文件需要您像这样手动分配内存? 基金会提供了用于将文件直接读取到Data中的 API。

LLVM有一个优化,可以省略未使用的malloc调用。 如果您的测试代码实际上不需要分配,则永远不会执行它。

相关内容

  • 没有找到相关文章

最新更新