以下代码位于我的标题文件中:
char mystrcat(char *s1, const char *s2) //strcat function
{
mystrcpy(s1 + mystrlen(s1), s2);
return s1;
}
错误是返回s1; “返回值类型与函数类型不匹配。” 我知道strcat函数会将源字符串的副本附加到目标字符串,但是如何修复此错误。 我的代码的另一部分是在main.cpp中。如果你需要更多代码,请告诉我。
答案 0 :(得分:1)
您的功能应该返回char
,但您将返回s1
char*
确保您了解s1
答案 1 :(得分:1)
您的签名应该是
char* mystrcat(char *s1, const char *s2)
// ^~~~~~ Note the pointer
答案 2 :(得分:0)
1)错误:“返回值类型与函数类型不匹配
原因:s1是char *;你的签名返回“char”
解决方案:将您的签名更改为char *
2)什么是mystrcpy()?那里潜藏着什么错误?
3)更重要的是,谁为你回来的“s1”分配了空间?
4)如果返回的值大于原始值(可能的情况),会发生什么?你有缓冲区溢出吗?
5)如果原始值是只读的(另一种可能的情况)会发生什么?
等等...