这是我们学校今年编译原理期末考试的一道题目,不知怎么做,还请指点一下.谢谢!
题目如下:
在某些程序设计方法中,空串可以同时用” ”或者NULL表示,下面是一个字符串合并的函数:
#define MAX_STRING 255
char*strcat(const char*s1,const char*s2)
{
char szBuffer[MAX_STRING];
char*ptr= szBuffer;
while (*s1!=’\0’&& s1!=NULL);
*ptr++=*s1++;
while (*s2!=’\0’&& s2!=NULL);
*ptr++=*s2++;
return szBuffer;
}
问题:
(1)该函数的设计存在什么隐患?请举例子说明.
(2)试改写以上函数,消除隐患?