ポインタ型配列のポインタを構造体のポインタ変数に格納する方法教えて!
役に立った:0件
問題の箇所を試行錯誤しても「移植性のないポインタ変換(関数 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);
}
回答(2件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
No.2ベストアンサー20pt
NO.1の回答通りです。
ただ、質問プログラムをこのまま実行する場合は、headの値が未定義なので、mallocなどで領域確保が必要ですね。
この回答へのお礼
malloc忘れていました。ありがとうございます。
No.1ベストアンサー10pt
外部変数nameは、char*の配列ですので、配列に格納されている値は、"AAA"や"BBB"のアドレスである、char*の値です。
header->nameはchar*型なので、配列の値をそのまま代入すればいいと思います。
header->name = name[1];
この回答へのお礼
ありがとうございました。
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示











