二维数组增量

时间:2015-01-04 12:56:08

标签: c arrays

我需要将一个像这样的hist变量bin,它位于p和bin的循环中,

hist[p][bin] = hist[p][bin] + 1;

当我评论此行时,代码有效(验证了p和bin变量打印)。但是,当我包含此行时,程序将终止分段错误。进一步检查bin变量给出了一个巨大的负整数(-214733313),这导致了分段错误。当我对这一行进行注释并且bin变量是正常整数时,程序正常运行。我在这里想念一件明显的事吗?。

由于

1 个答案:

答案 0 :(得分:0)

如果您获得-2147 ...您基本上达到了有符号整数的最大大小,或者2 ^ 31 -1(32位,4个字节,一个C int)。

如果我们假设这一点,那么可以肯定地说你正在打击其中有$ FFFFFFFF的内存。我只在未分配的,通​​常是随机的内存中看到这一点。可以安全地假设你的问题已经超出界限。你可以让hist [p] [bin]成为你数组的最大内存,加1会超出界限。