Write implementation of memcpy and memmove functions? What is the difference between the two?
Implementation of memcpy
void memcpy(void* dest, void* src, int n_size) {
char* d = (char*) dest;
char* s = (char*) src;
while(n_size– > 0) {
*d++ = *s++;
}
}
Implementation of memmove
void memmove(void* dest, void* src, int n_size) {
char* d = (char*) dest;
char* s = (char*) src;
if(d > s) {
while(n_size– > 0) {
*d– = *s–;
}
} else {
while(n_size– > 0) {
*d++ = *s++;
}
}
}
memmove ensure correct copying when the two buffers overlap.
April 4, 2008 | Filed Under C++
Related Post
Comments
Leave a Reply