【发布时间】:2010-01-03 10:13:21
【问题描述】:
我的工作主要使用 C 语言。我遇到了很多问题,并花了很多时间调试与动态分配的内存损坏/覆盖相关的问题。与 malloc(A) A 字节类似,但使用 write 多于 A 字节。当我阅读时,我试图阅读一些东西:-
1.) 一种分配比所需更多内存的方法。并在额外的位置写一些已知的值/模式。然后在程序执行期间,该模式应该保持不变,否则它表示内存损坏/覆盖。但是这种方法是如何工作的。这是否意味着对于使用 malloc() 分配的指针的每次写入,我都应该对附加的哨兵模式进行内存读取并读取它的完整性?那会使我的整个程序非常慢。 并且说我们可以从代码的发布版本中删除这些检查,也不是富有成效的,因为与内存相关的问题在“真实场景”中可能会发生更多。那么我们可以处理吗?
2.) 我听说有一种叫做 HEAP WALKER 的东西,它可以让程序检测与内存相关的问题?怎么能做到这一点。
谢谢。
-AD。
【问题讨论】:
-
92 个问题但只接受了 18%?这是为什么呢?
标签: memory