早教吧 育儿知识 作业答案 考试题库 百科 知识分享

一段c++看的有点晕if((fds=(dhtfds*)malloc(mem))==NULL)gotoerror;mem=strlen(fn)+1;/*filename*/if((fname=(char*)malloc(mem))==NULL)gotoerror;strcpy(fname,fn);

题目详情
一段c++ 看的有点晕
if((fds=(dhtfds *)malloc(mem))==NULL)goto error;
mem=strlen(fn)+1; /* file name */
if((fname=(char *)malloc(mem))==NULL)goto error;
strcpy(fname,fn);
▼优质解答
答案和解析
第一句反正是申请一个大小为mem的空间,具体什么作用我也不知道,要结合程序其他部分来看,如果申请失败,则转向执行错误处理代码;
第二句是考虑到字符串结束会有一个结束符'\0',结束符不被strlen函数所考虑,所以拷贝字符串时,要多申请1字节的空间来放结束符.
第三句就是申请空间来放字符串了.
第四句,用拷贝函数将fn的值拷贝给fname
看了 一段c++看的有点晕if((...的网友还看了以下: