如何檢測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