我正在尝试编写自己的 strcat 版本(我称之为“附加”)。这是我所拥有的:
#include <stdio.h>
int main() {
char *start = "start";
char *add = "add";
append(start, add);
printf(start);
}
void append(char *start, char *add) {
//get to end of start word
char *temp = &start;
while (*temp != '\0') {
temp++;
}
*temp = *add;
while (*temp != '\0') {
*temp = *add;
}
}
编译时,我收到 3 个警告和一个错误:
1) 警告:函数 'append' 的隐式声明在 C99 中无效
2)警告:格式字符串不是字符串文字(可能不安全)
3) 错误:“追加”的类型冲突
我看不到我在 main 中传递给 append 函数的参数如何与它下面的函数定义发生冲突。
4) 警告:用“char **”类型的表达式初始化“char *”的指针类型不兼容;消除 &
我为什么要在&
这里删除?我想我可以一次声明并初始化char
指向正确内存地址的指针。
任何帮助深表感谢。