構造体データ型を定義します。
typedef struct LinkNode LinkNode;
struct LinkNode {
char *name;
LinkNode *next;
};
そしてそれを main() で呼び出します:
Example1:
int main()
{
LinkNode *pnode = (LinkNode *) malloc(sizeof(LinkNode));
scanf("%s", pnode->name);
...
free(pnode);
return 0;
}
1行追加しない限り、機能しません:Example 2
int main()
{
LinkNode *pnode = (LinkNode *) malloc(sizeof(LinkNode));
pnode->name = (char *) malloc(sizeof(char));
scanf("%s", pnode->name);
...
free(pnode);
return 0;
}
ただし、次のコードは機能します。Example 3
int main()
{
LinkNode *pnode = (LinkNode *) malloc(sizeof(LinkNode));
pnode->name = "Jim";
...
free(pnode);
return 0;
}
だから問題は何ですか?pnode にメモリーが割り当てられていますが、なぜ scanf() が機能しないのですか? 私はVS2010を使用しています。ありがとう!