Dvi*_*aim 0 c string struct strcat strcat-s
这段代码中的错误是什么?我有一个错误
error C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead
Run Code Online (Sandbox Code Playgroud)
这是什么意思?另一个问题 - 结构和函数原型的声明是合法的吗?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
char *join(char *, char *);
printf("%s \n", join("duck", "soup"));
}
char *join(char *s1, char *s2)
{
struct {
char buf[256];
} string;
string.buf = "abcd";\\ new line. error l-value.
return strcat(strcpy(string.buf, s1), s2);
}
Run Code Online (Sandbox Code Playgroud)
新行 - 为什么会出错?不是string.bufchar指针?有什么问题char *s="abcd"?谢谢!:)
错误消息完全不言自明.目前尚不清楚你不理解它是什么.例如,在你的join函数中,如果两个字符串一起超过255个字符,就会发生可怕的事情.
此外,您的join功能完全破碎.它返回一个指向缓冲区的指针,该缓冲区一旦返回就不再存在,因为您将它分配给要返回的堆栈.