Как бы вы реализовали функцию memmove(в самом простом варинте без проверок)int i,size=5;
char *src="ABCDE";
char *dst;for(i=0;i<size;i++) {
dst[i]=src[i];
}for(i=0;i<5;i++) {
printf("[%d]%c %c\n",i,src[i],dst[i]);
}Выводит
./mem2
[0]A A
[1]B B
[2]C C
[3]D D
[4]E E
Укажите на ошибки плз
>Как бы вы реализовали функцию memmove(в самом простом варинте без проверок)
>
>int i,size=5;
>char *src="ABCDE";
>char *dst;
>
>
>
>for(i=0;i<size;i++) {
>dst[i]=src[i];О каком dst[i] идет речь, если dst - всего лишь указатель?
это не копия массива, а указателя !!!char * src = "ABCDE";
char * dst = src;
int i=0;while( *src != '\0') {
printf("[%d]%c %c\n", i++, *(src++), *(dst++));
}
>Укажите на ошибки плзВы реализовали memcpy, а memmove должна учитывать что области *src и *dst могут пересекаться.
>Как бы вы реализовали функцию memmove(в самом простом варинте без проверок)man memmove. Реализация представлена в /usr/src/lib/libc/string/bcopy.c (Для FreeBSD). cvsweb.freebsd.org для поиска.