【发布时间】:2012-12-08 22:59:39
【问题描述】:
最近有人指出我的一个 C 程序,如果内存块的起始地址足够低,我的一个测试将由于绕零而失败,从而导致崩溃。
起初我认为“这是一个令人讨厌的潜在错误”,但后来,我想知道:这种情况会发生吗?我从来没有见过。公平地说,这个程序已经在无数系统上运行了数百万次,而且到目前为止还没有发生过。
因此,我的问题是:
对malloc() 的调用可能返回的最低内存地址是多少?据我所知,我从未见过像 0x00000032 这样的地址。
我只对“现代”环境感兴趣,例如 Linux、BSD 和 Windows。此代码不适用于 C64 或任何爱好/研究操作系统。
【问题讨论】:
标签: c memory malloc memory-address