“invalid type argument of ‘unary *’ (have ‘xxx’)” というエラーメッセージは、プログラミング言語 C で、ポインタ型として期待される変数に、予期しない型の値が代入されたときに発生します。例えば次のようなコードです。
int a = 10; int *p = a; // 'a' は int 型の変数であるため、ポインタ型に代入することはできません
このコードでは、変数 a
は int
型ですが、変数 p
にはポインタ型の値が代入される必要があります。しかし、 a
をポインタ型の値に変換することはできません。そのため、このようなコードを実行しようとすると、”invalid type argument of ‘unary *’ (have ‘xxx’)” というエラーメッセージが表示されます。
この問題を解決するには、a
をポインタ型の値に変換する必要があります。例えば、次のようなコードです。
int a = 10; int *p = &a; // 'a' のアドレスをポインタ型の値として代入する
コメント