当我编译这段代码时,我遇到了一个总线错误,我不明白我在做什么导致这个。我读了一个总线错误所需的内容,但我仍然没有看到我的问题。此代码应该重现string.h库中strcpy()函数的行为。
#include <unistd.h>
void ft_putstr(char *str)
{
while (*str)
write(1, str++, 1);
}
char *ft_strcpy(char *dest, char *src)
{
int index;
index = 0;
while (src[index] != '\0')
{
dest[index] = src[index];
index++;
}
dest[index] = '\0';
return (dest);
}
int main(void)
{
char *str1, *str2, *cpy;
str1 = "Cameron";
str2 = "Why you no work?";
cpy = ft_strcpy(str1, str2);
ft_putstr(cpy);
return (0);
}
答案 0 :(得分:1)
char *name = "string";
在内存中创建字符串文字,以后无法重写。 使用malloc和你的函数而不是这样的初始化。