C言語で配列の型を変更する方法
C言語では配列の型の変更を以下で行うことができます。
- 元の配列の要素を新しい配列に代入するために新しい配列を作成します。その方法は、元の配列を順番に反復処理し、要素を新しい配列に 1 つずつ代入する必要があります。たとえば、元の配列の型が int で、float 型に変更する場合、新しい float 型の配列を作成し、元の配列の各要素を float 型に変換して新しい配列に代入します。
int originalArray[5] = {1, 2, 3, 4, 5};
float newArray[5];
for (int i = 0; i < 5; i++) {
newArray[i] = (float)originalArray[i];
}
- キャスト演算子を使って配列のポインタを対象となる型のポインタに変換します。この方法は新しい配列を生成する必要はなく、もとの配列のポインタを対象となる型のポインタに変換するものであり、もとの配列に対して直接操作を行うことができます。
int originalArray[5] = {1, 2, 3, 4, 5};
float* newArray = (float*)originalArray;
そのためポインタ変換時には、ターゲットの型が元配列の要素の型とサイズ、アライメントの整合性に注意が必要です
つまり、配列の型を変更するには新しい配列を作成して一個一個代入するか、ポインタ型変換演算子を使って元の配列のポインタを対象型のポインタに変換する必要がある。