gpt4 book ai didi

c - float 值(value)突然变得巨大

转载 作者:太空宇宙 更新时间:2023-11-04 07:40:25 27 4
gpt4 key购买 nike

我宁愿不转储代码,而是解释我的问题。经过几个小时的调试,我设法理解在我的代码中的某个时刻,未明确修改 的浮点值会变成巨大的(超过 1e15)。我确实在我的程序中使用了很多内存(一个包含 800 多个单词的字符串数组),但除此之外,我不知道是什么导致了这种情况。

如果有人对此有任何想法,请分享。否则,我会发布一个 pastebin很快的代码。

编辑:这是代码:http://pastebin.com/vgiZweNq .问题在于 next_generation() 函数,其中 sumfit 变量在循环中随机出现问题。

此外,我在 linux 上使用 -fno-stack-limit-fstack-check 编译了它,以避免堆栈溢出。

编辑 2:我已将程序更改为使用动态分配的链表,以进一步避免堆栈溢出。不过,sumfit 会在随机点更改为 Floatzilla,通常很早。

干杯!

最佳答案

由于变量显然是从一个意想不到的点被修改的,您可能需要检查一些可能性:

  • 它是从不同的线程还是从中断/事件处理程序修改的?如果是这样,访问是否正确同步以防止数据竞争?
  • 您是否正在执行可能存在错误并导致在预期缓冲区外访问的指针算法?
  • 您是否在不同大小的类型之间转换指针?
  • 特别是如果您在嵌入式设备上工作:可能内存已满并且您的堆栈与堆或全局变量重叠。

有关发生这种情况的平台的更多信息会有所帮助。

关于c - float 值(value)突然变得巨大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4836620/

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