Кажется, это отличное место. Мой вопрос в том, какое значение (или сколько байтов) я перемещаю в этой реализации memmove()?
int main ()
{
char str[] = "memmove can be very useful......";
memmove (str+15,str+20,/*?*/);
puts (str);
return 0;
}
В следующем примере говорится, что я перемещаю 11 байт. Но что делает его 11 байт? Может кто-нибудь объяснить?
int main ()
{
char str[] = "memmove can be very useful......";
memmove (str+20,str+15,11); //source and destination are reversed
puts (str);
return 0;
}
Спасибо!
Редактировать: Кстати, длина строки составляет 33, включая завершающий нулевой символ.
int main()
должно бытьint main(void)
. Что еще более важно, вам нужны#include <stdio.h>
и#include <string.h>
. Если ваш компилятор не предупредил вас об этом, поднимите уровень предупреждения, пока он не предупредит. - person Keith Thompson   schedule 29.10.2011memmove()
. Реализацияmemmove()
будет кодом в библиотеке времени выполнения, который фактически копирует байты. - person Keith Thompson   schedule 29.10.2011