In this guide, you will learn what is memmove() function is in C++ programming and how to use it with an example.
1. memmove() Function Overview
The memmove() function in C++ is utilized to copy memory areas. Unlike memcpy(), memmove() is designed to handle overlapping memory regions safely. It is an integral function found in the C++ <cstring> header, often used when copying blocks of memory without causing unintended alterations, especially in cases where source and destination memory regions overlap.
Signature:
void* memmove(void* dest, const void* src, size_t n);
Parameters:
- dest: Pointer to the destination memory location.
- src: Pointer to the source memory location.
- n: Number of bytes to copy.
2. Source Code Example
#include <iostream>
#include <cstring>
int main() {
char str[] = "C++Programming";
// Creating overlap by moving the "C++" part further into the string
memmove(str + 4, str, strlen(str) + 1);
std::cout << "Modified string after memmove: " << str << std::endl;
return 0;
}
Output:
Modified string after memmove: C++C++Programming
3. Explanation
In the provided source code:
1. We begin by including the essential header files: <iostream> for input/output procedures and <cstring> for memmove() and strlen().
2. We define a character array named str.
3. The memmove() function is employed to shift the initial segment of the string ("C++") further down, thus creating an overlap.
4. The size parameter for memmove() is determined using strlen(str) + 1 to make sure the null terminator is also shifted.
5. The modified string is then printed to demonstrate the successful movement of memory regions.
Comments
Post a Comment