1

我正在尝试使用相同的随机选择的整数填充几个数组,但我不断在主题行中收到错误。这是我的代码:

while(i++ < arraySize){
        randInt = (int)random()%100;
        originalArray++ = randInt;
        ascendingOrderArray++ = randInt;
        descendingOrderArray++ = randInt;
    }

为什么在这种情况下会发生此错误?据我了解,此代码与将 randInt 分配给三个数组然后在代码末尾递增它们的指针相同。

4

3 回答 3

1

假设originalArray,ascendingOrderArraydescendingOrderArray是类型int *randInt类型int的指针,您必须在分配时取消引用指针。例如*originalArray++ = randInt;. 这将取消引用产生您可以分配的“左值”的指针,将其值分配randInt给它(当originalArray指针指向时),然后增加指针。

于 2013-02-24T02:16:12.090 回答
1

在这里,您尝试将值分配给一个数字 - 一个数组的地址。一个数字是一个右值,而不是一个左值,所以它失败了。

originalArray++ = randInt;

在这里,您正在为内存位置分配一个值——通过取消引用指针获得的地址。这是一个左值,所以它成功了:

*originalArray++ = randInt;
于 2013-02-24T02:16:41.963 回答
0

original++ 不是对象,因此您不能在其中存储值。

于 2013-02-24T02:16:36.790 回答