これが私のコードです:
void doubleValuesInArray(int *pointer) {
for (int n = 0; n < 2; n++) {
int a = (*pointer+n);
a = a * 2;
*pointer+n = a;
}
}
int main(int argc, char** argv) {
int myArray[] = {1,2};
doubleValuesInArray(myArray);
cout<<myArray[0]<<endl;
return 0;
}
出力は次のとおりです。
main.cpp: 関数 `void doubleValuesInArray(int*)' 内: main.cpp:19: エラー: 割り当て make[2]: * [build/Debug/Cygwin-Windows/main.o] エラー 1 make [1]:[.build-conf] エラー 2 make: * * [.build-impl] エラー 2
私の質問は:
int a = (*pointer+n);
うまく動作します。変数 'a' は、*pointer + n を使用して配列から値 0 と 1 を取得します。
でも
*pointer+n = a;
動作しないようです。
pointer[n] = a; を使用する場合 それも同様に機能します。
最初のアプローチが機能しないのはなぜですか?