我试图编写一个非常简单的程序,但我找不到问题所在。尝试了不同的方法,这是我现在尝试的:
#include <stdio.h>
void copyStr(char *p, char *h){
int i=0,j=0;
int length=0;
length=strlen(p); int l=length;
for (i=0; i<length; i++){
h[i]=p[l-1];
l--;
}
char *temp=&h[0];
for (i=0; i<length; i++){
printf("%c",temp[i]);
}
}
main(){
char p[]="abcde";
char h [sizeof(p)];
copyStr(p,h);
}
当我复制这些字符串时,第一个字母似乎没有被复制。
我的任务实际上更大,试图以相反的顺序复制这些字符串,但我相信找出这里出了什么问题将有助于我成功。
任何帮助都将受到赞赏。
编辑:已解决,代码现在可以工作。
p
已经走到了未定义行为的领域,甚至没有被评估就被取消引用。而且你应该传递p,h
,而不是&p, &h
。你的第二个字符串未填充且不确定,正在破坏你的第一个字符串,你确定这些参数的顺序正确吗? - WhozCraig