在閱讀this question關於Windows內存分配器看似簡併的行爲後,記住回到this paper關於構建快速排序實現的最壞情況輸入,我開始懷疑:是否有可能構建一個程序,給定一個黑盒內存分配器強制分配器即使在系統中仍有足夠的內存時也會失敗分配請求?也就是說,是否有可能採用黑盒內存分配器並強制其失敗?內存分配器的「殺手對手」?
我知道這可以通過在棋盤格式中分配和釋放內存來強制實現大規模碎片來完成,所以在我看來,一個理想的解決方案會導致在故障發生時分配的字節數最少而失敗。關於啓發這一點的原始帖子,如果內存分配程序存在內部錯誤,理論上可能導致分配零字節失敗。
關於如何做到這一點的任何想法/想法?
用黑匣子指定你的意思。對手是否可以訪問分配的地址? – 2011-03-24 21:49:05
是的,您可以查看已分配的地址,但無法確定,例如,塊大小是多少,或者塊被分組到哪些列表中。 – templatetypedef 2011-03-24 22:06:52
糟糕,一個邪惡的問題。 +1。 – 2011-03-25 01:10:39