永发信息网

C语言函数的返回值为指针时的问题

答案:2  悬赏:30  手机版
解决时间 2021-02-23 07:52
  • 提问者网友:杀生予夺
  • 2021-02-22 17:50
说一个具体的例子:输入一个代表星期几的数字,实际对应的星期的英文名称。
下面这段代码是正确的,我不理解其中的一个片段
————————————代码如下——————————
#include
char *week_day[8]= {"sunday","monday","tuesday","wednesday","thursday","friday","saturday",NULL};
main()
{ int day;
char *p,*lookstr();
printf("Enter day:");
scanf("%d",&day);
p=lookstr(week_day, day);
printf("%s\n",p);
}
char *lookstr (table, day)
char *table[];
int day;
{ int i;
for(i=0;i if(i==day&&table[i]!=NULL)
return(table[day]);
else return(NULL);
}
最佳答案
  • 五星知识达人网友:患得患失的劫
  • 2021-02-22 19:09
week_day作为lookstr()的参数,经过函数lookstr()提取之后,return(table[day]),得到一个静态字符串的指针;输入数字有误情况下return(NULL)。
全部回答
  • 1楼网友:归鹤鸣
  • 2021-02-22 19:49
1、一样的不安全 2.1 在你main那里free 2.2 在这个例子里不是必须,main返回后释放所有内存。但这个习惯是必须的,有分配就有释放。特别是像一些服务程序,运行起来之后就不停止的,如果一直不释放,一段时间后内存就爆了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯