プロが教えるわが家の防犯対策術!

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

A 回答 (2件)

NO.1の回答通りです。


ただ、質問プログラムをこのまま実行する場合は、headの値が未定義なので、mallocなどで領域確保が必要ですね。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/11/28 17:32

外部変数nameは、char*の配列ですので、配列に格納されている値は、"AAA"や"BBB"のアドレスである、char*の値です。


header->nameはchar*型なので、配列の値をそのまま代入すればいいと思います。

header->name = name[1];
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/11/28 17:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!