我用指针写了一个字符串复制程序,但是它出现了分段错误,不知道为什么。
感谢下面是我的代码:#include<stdio.h>
void strcp(char *s,char *t){
while(*s++=*t++)
;
}
void main(){
char *d="this is destination";
char *s="this is source";
strcp(d,s);
while(d++){
printf("%s " ,*d);
}
return;
}
d
指向的是字符串文字,写字符串文字是未定义的行为。您也可以这样定义d
:
char d[]="this is destination";
你还需要修复printf
和循环从这:
while(d++){
printf("%s " ,*d);
}
:
printf("%s " ,d);
,您可以删除循环。最后,main
应该始终返回int
:
int main()
即使你没有传递字面量,如果t比s长,那么你的指针就会偏离终点。