| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1052 人关注过本帖
标题:struct定义问题
只看楼主 加入收藏
OneMan
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2008-12-5
结帖率:100%
收藏
 问题点数:0 回复次数:2 
struct定义问题
struct FILELINE
{
    char DataLine[100];
    struct FILELINE* next; // 这里什么意思不懂,这样是属于递归么?有啥作用
};


struct FILELINE* ReadFile2Memory( char *fileName )
{
    struct FILELINE* p1 = NULL;
    struct FILELINE* p2 = NULL;
    struct FILELINE* head = NULL;
   
    FILE* fp = NULL;
   
    p1 = (struct FILELINE*)malloc( sizeof(struct FILELINE) );    //开辟新内存单元
    if( p1 == NULL )
    {
        printf( "开辟新内存单元失败......\n" );        
        return( (struct FILELINE*)NULL );
    }
   
    fp = fopen( fileName , "r" );//打开文件句柄
    if( fp == NULL )
    {
        printf( "打开文件%s失败......\n" , fileName );
        
        return( (struct FILELINE*)NULL );
    }
   
    // 读取第一行,存入第一个节点
    memset( p1, 0, sizeof(struct FILELINE) );
    fgets( p1->DataLine, MAX_LINE_LENGTH, fp );
    if( p1->DataLine[strlen(p1->DataLine)-1] == '\n' )
    {
        p1->DataLine[strlen(p1->DataLine)-1]='\0';
    }
    iCount++;
    head = p1;
    p2 = p1;
   

    while( !feof(fp) )
    {
        p1 = (struct FILELINE*)malloc( sizeof(struct FILELINE) );
        
        if( p1 == NULL )
        {
            printf( "开辟新内存单元失败......\n" );
            break;
        }
        memset( p1, 0, sizeof(struct FILELINE) );
        fgets( p1->DataLine, MAX_LINE_LENGTH, fp );
        if( p1->DataLine[strlen(p1->DataLine)-1] == '\n' )
        {
            p1->DataLine[strlen(p1->DataLine)-1]='\0';
        }
        iCount++;
        p2->next = p1;  //这里不懂
        p2 = p1;
        
   
    }
   
    p2->next = NULL;
   
    fclose( fp );
    return head;
}

[ 本帖最后由 OneMan 于 2009-10-30 23:59 编辑 ]
搜索更多相关主题的帖子: 定义 struct 
2009-10-30 23:56
无诲今生
Rank: 8Rank: 8
来 自:桂林理工大学
等 级:蝙蝠侠
威 望:2
帖 子:373
专家分:726
注 册:2009-5-11
收藏
得分:0 
以下是引用OneMan在2009-10-30 23:56:33的发言:

struct FILELINE
{
    char DataLine[100];
    struct FILELINE* next; // 这里什么意思不懂,这样是属于递归么?有啥作用
};


struct FILELINE* ReadFile2Memory( char *fileName )
{
    struct FILELINE* p1  ...
是创建一个结点,学了数据结构就会明白了

顺境逆境切莫止境,得意失意切莫在意。
2009-10-31 08:15
longlong89
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:小飞侠
威 望:6
帖 子:1043
专家分:2754
注 册:2009-8-18
收藏
得分:0 
这是建立单链表的算法
你标的第一处是链表的结构问题:
链表由多个结点构成,其中一个结点分为一个数据项和一个指针项(指向下一个结点),你所标的第一个地方就是结点的指针项。
第二个地方是把后一个结点的地址赋给前一个结点的指针项

想象力征服世界
2009-10-31 21:30
快速回复:struct定义问题
数据加载中...
 
   



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

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