memmove() in c - Explanation
#include <stdio.h>
#include <string.h>
int main ()
{
char str [100 ] = "Learningisfun" ;
char * first , * second ;
first = str ;
second = str ;
printf ("Original string :%s\n " , str );
// when overlap happens then it just ignore it
memcpy (first + 8 , first , 10 );
printf ("memcpy overlap : %s\n " , str );
printf ("memmove overlap - first : %s\n " , first );
// when overlap it start from first position
memmove (second + 8 , first , 10 );
printf ("memmove overlap : %s\n " , str );
printf ("memmove overlap[9] : %s\n " , second + 9 );
printf ("memmove overlap - first : %s\n " , first );
printf ("memmove overlap - second : %s\n " , second );
printf ("memmove sizeof : %ld\n " , sizeof (first ));
return 0 ;
}
Original string :Learningisfun
memcpy overlap : LearningLearningis
memmove overlap - first : LearningLearningis
memmove overlap : LearningLearningLe
memmove overlap[9] : earningLe
memmove overlap - first : LearningLearningLe
memmove overlap - second : LearningLearningLe
memmove sizeof : 8