char *strcat(char *s, char *t)
把*t连接到*s,并保存在*s中,*s没有足够空间的话,编译器找不到这个小虫子,gdb也没有发现它,一运行它就钻出来…
一个可行的方案:
#include <stdio.h>
#include <string.h>
#define MAX_NUM 100
int main()
{
char fn[MAX_NUM];
char *s = “abc”;
char *t = “def”;
strcpy(fn, s);
strcat(fn, t);
printf(“%s\n”, fn);
return 0;
}
另一个似乎也不错:
#include <stdio.h>
#define MAX_NUM 100
int main()
{
char fn[MAX_NUM];
char *s = “abc”;
char *t = “def”;
sprintf(fn, “%s%s”, s, t);
printf(“%s\n”, fn);
return 0;
}