这段代码有什么错误?我有一个错误
error C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead
这是什么意思?另一个问题——结构体和函数原型(prototype)的声明是否合法?
#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);
}
新行 - 为什么会出错? string.buf
不是一个字符指针吗? char *s="abcd"
有什么问题?
谢谢!:)
最佳答案
错误消息完全不言自明。不清楚你不明白的是什么。例如,在您的 join
函数中,如果两个字符串的总长度超过 255 个字符,就会发生可怕的事情。
此外,您的 join
功能完全损坏。它返回一个指向缓冲区的指针,该缓冲区一旦返回就不再存在,因为您将它分配到要返回的堆栈上。
关于C - strcat 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28739773/