こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

問題の箇所を試行錯誤しても「移植性のないポインタ変換(関数 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);
}

投稿日時 - 2004-11-28 14:11:38

QNo.1103637

困ってます

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

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

投稿日時 - 2004-11-28 16:32:24

お礼

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

投稿日時 - 2004-11-28 17:32:21

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

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

header->name = name[1];

投稿日時 - 2004-11-28 14:44:04

お礼

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

投稿日時 - 2004-11-28 17:31:48

あなたにオススメの質問