代码之家  ›  专栏  ›  技术社区  ›  grigy

关于g++生成代码的问题

  •  1
  • grigy  · 技术社区  · 17 年前

    1 回复  |  直到 17 年前
        1
  •  3
  •   Julien Oster    17 年前

    通常不是对象的内存被覆盖,而是对象外部的部分内存被覆盖。如果这击中了malloc的控制结构,free会在访问它们并试图根据损坏的结构做一些奇怪的事情时崩溃。

    如果您真的只使用愚蠢的东西覆盖对象内存,那么malloc/free是不可能知道的。您的程序可能会崩溃,但有其他原因。

    看看 valgrind . 它是一个模拟CPU的工具,可以监视每次内存访问的异常情况(比如试图覆盖malloc的控制结构)。它真的很容易使用,大多数时候你只是在valgrind中通过预结束来启动你的程序 valgrind

    关于C++: 总是

    推荐文章