malloc问题
我在vc6下编译的
#include<stdio.h>
#include<string.h>
main()
{
char *s="fffds",*t="kllsd";
char *r,*malloc();
r = malloc(strlen(s)+strlen(t)+1);
strcpy(r,s);
strcat(r,t);
printf("%s",r);
}
这个可以通过而且没问题(c缺陷与陷阱的代码);
#include<stdio.h>
#include<string.h>
#include<malloc.h>
main()
{
char *s="fffds",*t="kllsd";
char *r,*malloc();
r = malloc(strlen(s)+strlen(t)+1);
strcpy(r,s);
strcat(r,t);
printf("%s",r);
}
这个就出错了,大神指点下,为啥可以char *malloc();
malloc不是已经是void*的型的返回值了吗,而且我没调用malloc.h,竟然连警告没有,我把string去掉也可以过但是有警告