| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 429 人关注过本帖
标题:请问问大侠们,什么原因?
取消只看楼主 加入收藏
uanjinjun
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-9-16
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
请问问大侠们,什么原因?
#include <stdio.h>
#include <string.h>


#define MAX_LENGTH  60
#define END_OF_ARRAY    '\0'


typedef struct week{
    char name[MAX_LENGTH];
    int  number;
    } Week;


int TestAllocSpace(int num, char **list)
{
    if (num == 0)
        *list = (char *)calloc(1, sizeof(Week));
    else
        *list = (char *)realloc(*list, sizeof(Week)*(num+1));

    return(0);
}


int GetLine(FILE *fp, char string[MAX_LENGTH])
{
  int len;

    while (fgets(string, MAX_LENGTH, fp) != NULL)
    {
        len = strlen(string);
        if (len > 1)
        {
            string[len-1] = END_OF_ARRAY;
            return (0);
        }
    }

  return (-1);
}
   

int main(int argc, char *argv[])
{
  char line[MAX_LENGTH];
  Week *list=NULL, *p;
  int i, num=0;
  FILE  *fp;
 
    if( argc < 2 )
        exit(-1);

    fp = fopen( argv[1], "r");
    if( fp == NULL )
        exit(-1);

    while ( !GetLine(fp, line) )
    {
        TestAllocSpace(num, &list);
        strcpy(list[num].name, line);
        
        p = &(list[num]);
        p->number = num;
        
        num++;
    }


    for(i = num-1; i >= 0; i--)
        printf("%d) %s\n", list[i].number, list[i].name);

    free(list);

    fclose(fp);
   
  return(0);
}
该程序中子函数TestAllocSpace(int num, char **list)中第二个形参为char型,但主函数中调用该子函数时传递的参数为我week结构类型的,该程序可以运行成功,请问问大侠们,什么原因?
搜索更多相关主题的帖子: include number return 
2011-09-16 22:59
uanjinjun
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-9-16
收藏
得分:0 
谢谢2楼的回答,但是C语言教材上说过函数的形参和实参的数据类型必须一致,形参中是char型,实参中是Week型,不一致呀?
2011-09-17 14:48
快速回复:请问问大侠们,什么原因?
数据加载中...
 
   



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

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