"C2114: '+=': 左オペランドがポインターなので、右オペランドは整数値でなければなりません" に関する原因と対処

このコンパイルエラーの原因と対処に関して説明します。

スポンサード リンク

Microsoft Visual C++にて以下のソースでコンパイルエラーが発生します:

コンパイルエラーメッセージ:
error C2114: '+=': 左オペランドがポインターなので、右オペランドは整数値でなければなりません。

ソース(バグ有り):

int main() 
{
int a=0;
int *pointer_a = &a;
pointer_a+=0.5; }


原因:
ポインタに対して整数以外の値が足されました。ポインタには double 型などの変数を足すことはできません。この例ではポインタに 0.5 が足されたためエラーが発生しました。

+ オペレータのオペランドには整数値が必要です。

ポインタはアドレスであるため、整数以外の値を代入できません。

対処:
ポインタに足す変数には整数値を指定します。


ソース(修正済み):

int main() 
{
int a=0;
int *pointer_a = &a;
pointer_a+=1; }

スポンサード リンク



[コンパイルエラーコード、メッセージに戻る]