我需要将一个像这样的hist变量bin,它位于p和bin的循环中,
hist[p][bin] = hist[p][bin] + 1;
当我评论此行时,代码有效(验证了p和bin变量打印)。但是,当我包含此行时,程序将终止分段错误。进一步检查bin变量给出了一个巨大的负整数(-214733313),这导致了分段错误。当我对这一行进行注释并且bin变量是正常整数时,程序正常运行。我在这里想念一件明显的事吗?。
由于
答案 0 :(得分:0)
如果您获得-2147 ...您基本上达到了有符号整数的最大大小,或者2 ^ 31 -1(32位,4个字节,一个C int)。
如果我们假设这一点,那么可以肯定地说你正在打击其中有$ FFFFFFFF的内存。我只在未分配的,通常是随机的内存中看到这一点。可以安全地假设你的问题已经超出界限。你可以让hist [p] [bin]成为你数组的最大内存,加1会超出界限。