構造体のポインタ
なぜかprevのほうが表示されません。
問題としては関数を作成し
gyuri[23] -> sunyon[23] -> nicole[20] -> hara[20] -> jiyon[17] -> hara[20] -> nicole[20] -> sunyon[23] -> gyuri[23] -> END
と表示させるのが目的です
gyuri[23] -> sunyon[23] -> nicole[20] -> hara[20] -> jiyon[17]
ここまではうまく表示できているのですが・・・
#include <stdio.h>
void printoufuku(struct kara *p);
struct kara {
char name[16];
int age;
struct kara *next;
struct kara *prev;
};
int
main()
{
struct kara a, x, f, m, c, *start;
strcpy(a.name, "gyuri");
a.age = 23;
strcpy(x.name, "sunyon");
x.age = 23;
strcpy(f.name, "nicole");
f.age = 20;
strcpy(m.name, "hara");
m.age = 20;
strcpy(c.name, "jiyon");
c.age = 17;
a.next = &x;
x.next = &f;
f.next = &m;
m.next = &c;
c.next = NULL;
/********************* 5 lines */
c.prev = &m;
m.prev = &f;
f.prev = &x;
x.prev = &a;
a.prev = NULL;
/*********************/
start = &a;
printoufuku(start);
return 0;
}
void printoufuku(struct kara *p)
{
for(p->next; p != NULL;p = p->next){
printf("%s[%d] ->",p->name,p->age);
}
for(p->prev; p != NULL; p = p->prev){
printf("%s[%d] ->",p->name,p->age);
}
}
お礼
回答 ありがとうございます。