(構造体)ループ条件のscanf文が処理されない!?
ループのscanf文を入力していないのに勝手にループの中に入って処理をしています。なぜでしょうか?
#include<stdio.h>
#include<malloc.h>
#include<process.h>
typedef struct node{
struct node *left;
char name[20];
int age;
struct node *right;
}NODE;
NODE *memalloc(void);
void main(void)
{
NODE *head, *p, *old;
/*ダミーノード作成*/
p = memalloc();
head = p;
p -> left = p;
p -> right = p;
old = head;
p = memalloc();
printf("名前 年齢入力 >");
scanf("%s, %d", p -> name, &p -> age);
old -> left = p;
old -> right = p;
p -> left = old;
p -> right = old;
while(p = memalloc(), old = p, printf("名前 年齢入力 >"), scanf("%s, %d", p -> name, &p -> age) != EOF){
printf("確認\n");
old -> right = p;
p -> left = old;
head -> left = p;
p -> right = head;
}
p = head -> right;
while(head -> left != p -> right){
printf("名前:%20s 年齢:%5d\n", p -> name, p -> age);
p = p -> right;
}
}
NODE *memalloc(void)
{
NODE *ptr;
if((ptr = (NODE *)malloc(sizeof(NODE))) != NULL){
return ptr;
}
printf("\n動的メモリ割当に失敗しました。\n");
exit(1);
return(0);
}