设置受边界保护的数组

时间:2012-06-18 04:00:24

标签: c windows linux mmu

我想分配一个数组并进行设置,使得它之前和之后的页面都受到内存管理单元的保护,因此将自动捕获遍历数组边界的尝试;然后抓住它以便以受控方式处理错误。

我怀疑会有一个可移植的解决方案,但是分别在Linux上使用Microsoft C和在Linux上使用GCC的最佳平台特定方法是什么?

1 个答案:

答案 0 :(得分:2)

实际上,有一种可移植的方法来检测软件中的内存分配溢出。 Dmalloc提供fencepost覆盖检测

  

Fence-post memory是紧靠内存或低于内存的区域   分配。编写访问上面或上面的代码太容易了   低于分配 - 特别是在处理数组或字符串时。   该库可以在每个区域周围的区域中编写特殊值   分配时,它会注意到这些区域被覆盖的时间。

http://dmalloc.com/docs/latest/online/dmalloc_17.html#SEC22