#include #include #define MAXSTR 1024 /* 1 行の長さ */ typedef struct list { int moji; struct list *next; } LIST; /* ----- 滅入ん ----- */ void main() { LIST *first; /* 先頭の要素を指すポインタ */ LIST *p; /* ワークポインタ */ LIST *pf; /* free() 用ポインタ */ int c; printf("1 行入力:"); c = getchar(); first = (LIST *)malloc(sizeof(LIST)); /* 先頭の要素を確保 */ first->moji = c; /* 1 文字セット */ p = first; /* ワークポインタをセット */ while (c != '\n') { c = getchar(); p->next = (LIST *)malloc(sizeof(LIST)); /* 次の要素を確保 */ p = p->next; /* ポインタを next へ */ p->moji = c; /* 1 文字セット */ } p->next = NULL; /* 最後の next には NULL を入れる */ printf("表示 & Free()\n"); p = first; /* リスト先頭のポインタ */ while (p != NULL) { putchar(p->moji); /* 1 文字表示 */ pf = p; /* 現在のポインタを free() 用ポインタへ */ p = p->next; /* 次のポインタ */ free(pf); } printf("終了\n"); }