0

此函数检查第一个参数是否为偶数,如果是,则将该值添加到第二个参数。它使用 void * 并且我必须转换为 int 但我在语法以及如何正确转换和使用指针方面遇到问题。

bool isEven(void *x, void* z) {

int * a = (int *)x;
int * b = (int *)z;

bool result = false;

if (*a % 2) {

    result = true;
    b += a;
}

return result;
}

我的语法有什么问题?我在“a”下收到一个错误,说“表达式必须具有整数或枚举类型”

4

2 回答 2

6

您的添加不会修改整数,而是修改指针。但是不能添加指针。

改为:

*b += *a;
于 2013-10-28T20:21:18.870 回答
2

您试图将一个指针添加到另一个指针,这是 C++ 中的非法操作。您需要首先取消引用指针以使用它们指向的整数(如果这是您的意图):

*b += *a;

于 2013-10-28T20:23:27.253 回答