【C言語】conversion to non-scalar type requested

conversion to non-scalar type requested というエラーメッセージは、プログラムでスカラー型(整数や浮動小数点数などの単一の値を表す型)を非スカラー型(配列や構造体など複数の値をまとめた型)へ変換しようとしたときに出るものです。

例えば、次のような C 言語のコードでは、整数の値 x を配列の型 int a[10] へ代入しようとしています。

int x = 5;
int a[10];
a = x;

このようなコードを実行すると、 conversion to non-scalar type requested というエラーが発生します。これは、整数の値 x を配列 a へ代入しようとしているためです。配列は複数の値をまとめた型であり、単一の値である x をそのまま代入することはできません。

この場合、代入するには a の各要素に個別に代入する必要があります。例えば、次のようなコードになります。

int x = 5;
int a[10];
for (int i = 0; i < 10; i++) {
  a[i] = x;
}

このようにすることで、配列 a の各要素に値 x を代入することができます。

コメント

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