取消引用的int *和int的布尔比较在C中失败

时间:2011-02-21 17:25:05

标签: c pointers int dereference

我在Debian Linux x64上用C编写程序。在部分代码中,我有以下if语句:

if (*all_drops >= (npes * 128)) {
            break;
}

all_dropsint*,已被分配了int的内存,而npesint,其值为2.因此,当all_drops中的值至少为256时,if语句应为true。但是,如果if语句的计算结果为true,我的变量大于1000.

我不确定在将解除引用的指针与其他数字进行比较时是否存在一些细微差别,但我搜索了Google并且未能找到任何类似的问题(这让我相信我错过了一些东西)。您将给予的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

这是有意的: http://ideone.com/DjHGI

我猜问题可能与您初始化*all_drops

的方式有关