BohYoh.comトップページへ
C & C++ FAQ
目次

C C++ 配列を別の配列に代入するとエラーとなるのはどうしてですか。

 C言語、C++言語では、配列そのものに対して代入演算子を適用することはできません。したがって、for文やwhile文などを用いて、全ての要素を一つずつコピーする必要があります。

int i, a[5], b[5]; double x[10], y[10]; /* エラー */ a = b; /* 正しい方法 */ for (i = 0; i < 5; i++) a[i] = b[i]; for (i = 0; i < 10; i++) x[i] = y[i];

C++11
 C++11では、for文の繰返しを制御する変数をautoによって宣言することが望まれます。その場合、上のプログラムは、以下のように実現することになります。

int a[5], b[5]; double x[10], y[10]; // エラー a = b; x = y; // 正しい方法 */ for (auto i = 0; i < 5; ++i) a[i] = b[i]; for (auto i = 0; i < 10; ++i) x[i] = y[i];



戻る

BohYoh.comロゴ