【C言語】subscripted value is neither array nor pointer nor vector

“subscripted value is neither array nor pointer nor vector” というエラーメッセージは、配列のようにインデックスでアクセスしようとした変数が、配列やポインタ、ベクターのいずれでもない場合に表示されます。

例えば、次のようなコードを書いたとします。

int x;
x[0] = 5;

このコードでは、変数 x を配列のようにインデックス 0 でアクセスしようとしています。しかし、x は配列ではないため、このコードは “subscripted value is neither array nor pointer nor vector” というエラーを引き起こします。

正しいコードは、次のようになります。

int x;
x = 5;

この場合、変数 x に値 5 を代入しているだけで、配列やポインタ、ベクターといったデータ構造を使っていないので、このコードはエラーを引き起こしません。

コメント

タイトルとURLをコピーしました