The ones who are crazy enough to think they can change the world are the ones who do.- Steve Jobs
memmove() is one of the inbuilt string function in c programming which is used to copy n character from memory location src to memory location des
memmove() is very much similar to memcpy(), both are capable of ovelapping characters, in some cases memcpy() fails to overlap, thus memmove() is a safer one in overlapping the characters of a string.
The following diagram clearly illustrate the working principle of memmove() inbuilt string function in C.
In the above diagram memmove() takes three parameter. First two parameters are string whereas third parameter is an integer, third parameter tells the compiler how much characters should be overlapped from src should be copied to des.
memmove(src, des, size);
Let us work through memmove() function, In the following program we will overlap n characters from memory location src to memory location des.
#include <stdio.h> #include<string.h> int main() { int src[5] = {0, 1, 2, 3, 4}; int des[5] = {5, 6, 7, 8, 9}, i; memmove( des, src, 5*sizeof(int)); for(i=0; i<5; i++) printf("des[%d] = %d\n", i, des[i]); return 0; }
des[0] = 0 des[1] = 1 des[2] = 2 des[3] = 3 des[4] = 4
In the above program we overlapped.
#include <stdio.h> #include<string.h> int main() { char *src="2braces.com"; char des[15] ="overwrite-it"; char len = 11, i; for(i=0; i<len;i++) des[i] = src[i]; printf("%0.11s",des); return 0; }
2braces.com
The above program looks verbose but yields the same result.
We may make mistakes(spelling, program bug, typing mistake and etc.), So we have this container to collect mistakes. We highly respect your findings.
© Copyright 2019