如何更正*** glibc在程序中检测到***错误[重复]

问题描述

||                                                                                                                   这个问题已经在这里有了答案:                                                      

解决方法

        仅当您向我们显示代码时,才能提供确切的解决方案。但是错误很明显。该代码释放无效或不再有效的内存。这意味着地址错误,因为例如在原始指针上执行了指针算术。或指针已被释放(双重释放)。     ,        您最有可能尝试将未动态分配的内存“ 0”。也许您有不必要的
free
或类似的错字:
free(&buf)
,而不是
free(buf)
。 用
-g
标志编译程序,然后通过调试器或内存调试器运行它。这将向您显示错误的确切位置。     ,        看来您正在尝试
free
invalid pointer
。您可以使用类似“ 7”的内存检查程序来运行该程序,如下所示:
valgrind --tool=memcheck --leak-check=full --track-origins=yes --show-reachable=yes --log-file=val.log ./<executable> <parameters>
看一下ѭ9,您应该能够找出内存泄漏发生的位置。另外,您可以尝试按
gdb/ddd (debuggers)
逐步执行代码。程序将在出现“ 11”的地方失败。要使代码为
debuggable
,您将需要使用ѭ4re标志重新编译代码。 或者,您可以在此处发布代码,让社区查看您出了什么问题。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...