该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
// 为什么主函数中
/*
while( p != NULL )
{
p = p->next;
printf("%s \n",p->info.filename,p,head);
printf("%x ",p);
}
的输出只有一行呢?
*/
#include
#include
#include
typedef struct data
{
char filename[20];
}datatype;
typedef struct queue
{
datatype info;
struct queue *next;
}Queue;
void Input_Queue( char *);
char *Output_Queue( Queue * );
Queue *head;
int main()
{
Queue *p;
char t[] = "albert";
head = (Queue *)malloc(sizeof(Queue));
p = head;
int i = 0;
for( ; i < 11; i++ )
{
t[5] = 'a' + i;
Input_Queue(t);
}
printf("%x ",p);
while( p != NULL )
{
p = p->next;
printf("%s \n",p->info.filename,p,head);
printf("%x ",p);
}
return 0;
}
void Input_Queue( char *tep)
{
Queue *s, *p = head;
if ((s = (Queue *)malloc(sizeof(Queue)))==NULL)
{
printf("新结点空间申请失败!\n");
exit(0);
}
strcpy(s->info.filename, tep);
s->next = NULL;
p->next = s;
p = s;
printf("%s %x %x \n",p->info.filename,p,head);
}