我试图在我的主要内部实现strcpy,但我不确定为什么我会在第一个while循环中进行segfaulting。有人会光明吗?
int main()
{
const char* src = "this is a test";
char* dest = "abcdefgqwerty";
char* head = dest;
while(*dest++ = *src++);
while(*head++)
{
printf("%c", *head);
}
return 0;
}
答案 0 :(得分:1)
目的地的空间不足以复制您的内容。 dest
的声明只包含14个字节,但您需要15个字节。
答案 1 :(得分:1)
dest
变量指向字符串文字,实际上它位于只读内存区域。这就是你无法复制的原因。
要测试您的strcpy()
实施,我建议将字符串声明为数组:
char dest[256] = "abcdefgqwerty";