gpt4 book ai didi

c++ - 什么会导致返回函数崩溃? C++

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:40:13 52 4
gpt4 key购买 nike

所以我已经调试这个错误几个小时了。我使用 Ogre3d 编写一个相关的程序只是因为它不加载符号所以它不会让我跟踪堆栈,这使得找到崩溃的位置更加困难。所以,在我调用一个特定的函数之前写我打印出“Starting”然后我调用这个函数并在我打印“Stopping”之后立即。在整个函数中,我打印出字母 A-F,其中在函数返回之前打印 F(最后一个 '}' 上方的一行)奇怪的是,当崩溃发生时,它是在打印 'F' 之后,但没有 'Stopping '.这是否意味着崩溃发生在某处之间?我唯一能想到的是在函数期间分配的一些内存的重新分配过程中出现了问题。我从来没有发生过这样的事情,我会继续检查以确保它在我认为的地方出错了。

最佳答案

大多数时候,当一些奇怪和不可理解的事情发生时,是因为其他原因。

你可以有一些 dangling pointers在您的代码中(即使在远离该函数的地方)指向一些随机内存单元。

您可能使用过这样的悬挂指针,它可能会导致覆盖您需要的一些内存单元。这样做的结果是,您通过更改其他地方定义的一些变量、一些常量,甚至一些代码来改变程序的行为!

我建议您使用一些能够检查和报告错误内存访问的工具来调试您的应用程序,例如 Valgrind .


无论如何,如果您能够定位崩溃的根源并编写一小段会崩溃的代码,请将其发布在这里——这可能只是您函数中的一个简单错误,尽管这听起来不太可能,从您的角度来看说明。

关于c++ - 什么会导致返回函数崩溃? C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4698946/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com