• ベストアンサー

ポインタ型配列のポインタを構造体のポインタ変数に格納する方法教えて!

問題の箇所を試行錯誤しても「移植性のないポインタ変換(関数 main )」と表示されます。 どうすればエラーが出ないでしょうか? 返答のほどよろしくお願いいたします。 #include<stdio.h> char *name[] = {"AAA", "BBB", "CCC"}; struct namelist{ char *name; struct namelist *next; }*head; void main(void) { printf("name = %s\n", name[1]); head -> name = *name[1];←問題の箇所 printf("head -> name = %s\n", head -> name); }

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

NO.1の回答通りです。 ただ、質問プログラムをこのまま実行する場合は、headの値が未定義なので、mallocなどで領域確保が必要ですね。

yukikundesuyo
質問者

お礼

malloc忘れていました。ありがとうございます。

その他の回答 (1)

  • tshinta
  • ベストアンサー率50% (3/6)
回答No.1

外部変数nameは、char*の配列ですので、配列に格納されている値は、"AAA"や"BBB"のアドレスである、char*の値です。 header->nameはchar*型なので、配列の値をそのまま代入すればいいと思います。 header->name = name[1];

yukikundesuyo
質問者

お礼

ありがとうございました。

関連するQ&A