1

我想分配一个数组并将其设置为使其前后的页面受到内存管理单元的保护,因此将自动捕获超出数组边界的尝试;然后捕获它以便以受控方式处理错误。

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

4

1 回答 1

2

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

Fence-post 内存是紧接在内存分配之上或之下的区域。编写访问分配高于或低于分配的代码太容易了——尤其是在处理数组或字符串时。库可以在每个分配周围的区域中写入特殊值,以便当这些区域被覆盖时它会注意到。

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

于 2012-06-18T04:04:30.433 回答