[英]Why segmentation fault on implementation of strcpy?
我实现了一个简单的 strcpy,但是当我运行它时,它总是给出一个分段错误。 请帮忙!
下面是我的代码:
#include <stdio.h>
char* mystrcpy(char *dst, char *src){
char *ptr = dst;
while (*src !='\0') {
*dst = *src;
dst++;
src++;
}
return ptr;
}
int main (int argc, char **argv) {
char *str1 = "abc";
char *str2 = "def";
char *str3 = NULL;
str3 = mystrcpy(str2, str1);
printf("str2 now is %s", str2);
printf("str3 is %s", str3);
return 0;
}
while( *src;='\0'){ *dst=*src;
您需要在这里取消引用您的指针,使用 &,而不是 *
编辑:
看起来我有自己的颅骨分割错误,在这里 - 早上太早了!
cnicutar 的解释(用char *str2 = "def";
分配指向字符串常量的指针,然后尝试写入该位置)更加合理......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.