Я пытаюсь написать действительно простую программу, но здесь я не могу найти проблему. Пробовал разные методы, это то, что я пытался в настоящее время:пытается скопировать строки в c, первая буква не копируется
#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);
}
Когда я копирую эти строки, то первая буква, кажется, не будет скопирована.
Мое назначение на самом деле больше, пытаясь скопировать строки в REVERSE, но я считаю, что выяснение того, что пошло не так, поможет мне добиться успеха.
Любая помощь предоставляется.
EDIT: решена, код в настоящее время работает.
Мне любопытно, что выход из этой второй петли, так как 'p' идет хорошо в землю неопределенного поведения даже оценить гораздо меньше разыменованных , И вы должны проходить 'p, h', а не' & p, & h'. И ваша вторая строка, незаполненная и неопределенная, сдувает ваш первый, уверены ли вы, что эти параметры находятся в правильном порядке? – WhozCraig