質問: head; } print_list(head); return 0; } ``` ### 入出力例 入力 ねこ ぶた たぬき ねこ いぬ ねこ いぬ 出力 ねこ 3 ぶた 1 たぬき 1 いぬ 2 ### 補足情報(FW/ツールのバージョンなど) gccコンパイラ
回答: > > 警告文も理解できない > > > 引数で定義している型と、実際の値の型が異なるために発生している警告です。 ``` void insert(list l, elementtype e) { ``` insert関数では「list型(node型のポインタ)」と「elementtype型(char型)」を 引数として受け取るように定義しています。 しかし、実際のinsert関数の呼び出しを見てみると、 ``` if(l->next == NULL) { insert(l, buf); } ``` と書いてあり、それぞれの宣言部を見ると、 `l`は「list型」で、`buf`は「char*型」となっています。 ※`char buf[128]`と宣言したときの`buf`は`&buf[0]`と同義になるので、 char型のアドレスを意味するchar*型になります。 解決策として、型を正しい方に合わせましょう。