免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1231 | 回复: 4
打印 上一主题 下一主题

为什么我的程序释放的是结构体中第一个字段 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-08-19 11:28 |只看该作者 |倒序浏览
#include <stdio.h>;
#include <string.h>;

struct VCHNODE
{
        char clicode[19];
        char vchnoarray[255][16];
        int index;
        struct VCHNODE *next;
};
typedef struct VCHNODE VchNode;

printlink(VchNode *l)
{
        int i;
        while(l)
        {
               
                printf("clicode=%s",l->;clicode);
                for(i=0;i<l->;index;i++)
                {
                        printf("vchno=%s",l->;vchnoarray);
                       
                }
                printf("\n";
                l=l->;next;
        }
}

/*---------------------------------------------------*/
/*   freelink 释放链表                                     */
/*---------------------------------------------------*/
short int freelink(VchNode *head)
{
        VchNode *p;

        while(head)
        {
                p=head;
                head=p->;next;
                free(p);               
        }
        return 0;       
}/*---------------------------------------------------*/
/*   addtolink 加入链表                                     */
/*---------------------------------------------------*/

VchNode * addtolink(VchNode *head,VCHINFO vchinfo)
{
        VchNode *p,*s;
       
        if(head)
        {
                if(strcmp(head->;clicode,vchinfo.clicode)==0)
                {
                        strcpy(head->;vchnoarray[head->;index],vchinfo.vchno);
                        head->;index=head->;index+1;
                        return head;
                }
                s=(VchNode *)malloc(sizeof(VchNode));
                strcpy(s->;clicode,vchinfo.clicode);
                strcpy(s->;vchnoarray[0],vchinfo.vchno);
                s->;index=1;
                s->;next=NULL;
                s->;next=head;
        }
        else
        {
               
                s=(VchNode *)malloc(sizeof(VchNode));
                strcpy(s->;clicode,vchinfo.clicode);
                strcpy(s->;vchnoarray[0],vchinfo.vchno);
                s->;index=1;
                s->;next=NULL;
               
        }
        head=s;
        return head;
}
main()
{
        VCHINFO aaa,bbb,ccc,ddd;
        VchNode *L=NULL;
        strcpy(aaa.clicode,"clicode1";
        strcpy(aaa.vchno,"222222222222222";
        L=addtolink(L,aaa);
       
        strcpy(bbb.clicode,"clicode1";
        strcpy(bbb.vchno,"333333333333333";
        L=addtolink(L,bbb);
       
        strcpy(ccc.clicode,"clicode2";
        strcpy(ccc.vchno,"333333333333333";
        L=addtolink(L,ccc);
       
        strcpy(ddd.clicode,"clicode2";
        strcpy(ddd.vchno,"555555555555555";
        L=addtolink(L,ddd);
       
       
       
        strcpy(ddd.clicode,"clicode2";
        strcpy(ddd.vchno,"111111111111111");
        L=addtolink(L,ddd);
       
        L=addtolink(L,bbb);
       
        freelink(L);
        printlink(L);
}

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-08-19 13:16 |只看该作者

为什么我的程序释放的是结构体中第一个字段

你怎么知道释放的就是第一个字段。

论坛徽章:
0
3 [报告]
发表于 2004-08-20 17:21 |只看该作者

为什么我的程序释放的是结构体中第一个字段

我打印出来第一个字段没有值,后面的都打印出来了

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2004-08-20 17:26 |只看该作者

为什么我的程序释放的是结构体中第一个字段

有一个问题你注意过没有。释放了,如果没被别的使用,数据还在那里,还是可以被打出来的啊。

论坛徽章:
0
5 [报告]
发表于 2004-08-22 09:19 |只看该作者

为什么我的程序释放的是结构体中第一个字段

原来是这样。谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP