【C言語】array type has incomplete element type

“array type has incomplete element type” というエラーメッセージは、配列の要素の型が不完全な場合に表示されます。

例えば、次のようなクラスを定義したとします。

class MyClass;

class MyArray {
  MyClass* x[10];
};

このクラス MyArray には、ポインタ型の配列 x を定義しています。しかし、配列 x の要素の型であるクラス MyClass は定義されていません。

そのため、このようなコードを実行すると、次のようなエラーが表示されます。

$ ./myprogram
array type 'MyClass*[10]' has incomplete element type 'MyClass'

このような場合、配列の要素の型を完全な型にする必要があります。例えば、次のようにクラス MyClass を定義することで、プログラムを修正することができます。

class MyClass {
  int x;
};

class MyArray {
  MyClass* x[10];
};

この場合、配列 x の要素の型が完全な型の MyClass になり、エラーが表示されなくなります。

コメント

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