如何检测malloc是否快速失败?如何判断malloc是否在iOS上快速失败?
最终目标是简单地分配所需的空间量,如果ios无法分配它,请向用户报告此优雅(而不是终止)。
当我尝试下面的代码,指针永远是零,错误号总是0
let pointer : UnsafeMutableRawPointer? = malloc(fileSize)
print("errno = \(errno)")
if (pointer == nil) {
print("Malloc failed")
}
如果'malloc'失败,指针应该是'nil'。也许它在你的测试中从未失败过? –
你在哪个平台上?在Linux上,您可能成为“乐观内存分配策略”的受害者:https://stackoverflow.com/a/7947888/1187415。 –
平台是ios。如果我尝试通过其他方式分配相同大小的内存,它会故意大量地占用内存。也许失败发生在稍后的一些初始化过程中? – TJez