| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1021 人关注过本帖
标题:c语言文件和链表
只看楼主 加入收藏
选调生
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:100
注 册:2016-6-24
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:2 
c语言文件和链表
struct student *input()                                          //录入学生信息
{   
    FILE *fp;
    struct student *head,*p1,*p2,*p;
    head=p2=(struct student *)malloc(N);
    p1=(struct student *)malloc(N);
    printf("请输入学生的信息:(0 0 0 0结束输入)\n学号     姓名    项目     电话\n");
    scanf("%s%s%d%d",p1->num,p1->name,&p1->item,&p1->iphone);
 while(strcmp(p1->name,"0")!=0)
    {
        p2->next=p1;                 //p2始终指向最后一个节点,p1指向新建立的节点
        p2=p1;
        
        p1=(struct student *)malloc(N);
        scanf("%s%s%d%d",p1->num,p1->name,&p1->item,&p1->iphone);
    }
    p2->next=NULL;                               //最后一个节点要指向NULL
    fp=fopen("message.txt","wt");
    p=head->next;
    while(p!=NULL)
    {
        fprintf(fp,"%s %s %d %d\n",p->num,p->name,p1->item,p1->iphone);

        p=p->next;
    }
    fclose(fp);
    return head;
}


为什么while语句外对p1,p2申请了动态存储空间后,在while语句内对p1又进行了申请?

求大神解惑
搜索更多相关主题的帖子: iphone c语言 电话 项目 信息 
2016-06-24 11:51
平常心q
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:120
专家分:550
注 册:2016-3-31
收藏
得分:20 
在while内申请是为了开辟下一个结点,不断循环,直至退出,才能形成链表
2016-06-24 12:16
选调生
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:100
注 册:2016-6-24
收藏
得分:0 
那外面的呢?
,外面给p1不是已经申请了么,难道到while内,外边申请的空间就不在了?

[此贴子已经被作者于2016-6-24 12:42编辑过]

2016-06-24 12:37
快速回复:c语言文件和链表
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041312 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved