创建链表一个奇怪现象,大神帮忙看看吧!大半天了还没回复。
#include<stdio.h>#include<malloc.h>
#define LEN sizeof(struct Date)
struct Date
{
int num;
float score;
struct Date *next;
};
int main()
{
struct Date* creat(), *p;
int n;
while(1)
{
creat();
p = creat();
printf("%d\n", p);
while(p != NULL)
{
printf("%d %7.2f\n", p->num,p->score);链表我在主函数打印。第一次时候是不会返回头指针地址,第二次是会返回头指针的地址,指头第二次输入才会打印。如果我就在创建函数打印,每次都可以打印创建的链表。什么问题造成的?
p = p->next;
}
}
}
struct Date* creat()
{
int i, n;
struct Date *p, *head;
printf("input N date information!\n");
scanf("%d", &n);
struct Date *link = (struct Date *)malloc(n *LEN);
head = link;
for (i = 0; i < n -1; i++)
link[i].next = &link[i + 1];
link[n - 1].next = NULL;
for(i = 0; i < n ; i++)
scanf("%d%f", &link[i].num, &link[i].score);
printf("%d\n", head);
printf("%d\n", &link[0]);
printf("%d\n", &link[1]);
return head;
}
[此贴子已经被作者于2017-4-6 10:10编辑过]