CopyMemory
Copies a block of memory from one location to another.
C++
Destination [in]
A pointer to the starting address of the copied block's destination.
Source [in]
A pointer to the starting address of the block of memory to copy.
Length [in]
The size of the block of memory to copy, in bytes.
The following code example shows a safer way to use CopyMemory. Alternatively, you could use the memcpy_s or wmemcpy_s function.
C++
Syntax
C++
void CopyMemory(
__in PVOID Destination,
__in const VOID *Source,
__in SIZE_T Length
);
Parameters
Destination [in]
A pointer to the starting address of the copied block's destination.
Source [in]
A pointer to the starting address of the block of memory to copy.
Length [in]
The size of the block of memory to copy, in bytes.
Examples
The following code example shows a safer way to use CopyMemory. Alternatively, you could use the memcpy_s or wmemcpy_s function.
C++
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#define BUFFER_SIZE 1024
#define COPY_SIZE 512
/*
MyCopyMemory - A wrapper for CopyMemory
buf - destination buffer
pbData - source buffer
cbData - size of block to copy, in bytes
bufsize - size of the destination buffer
*/
void MyCopyMemory(TCHAR *buf, TCHAR *pbData, SIZE_T cbData, SIZE_T bufsize)
{
CopyMemory(buf, pbData, min(cbData,bufsize));
}
void main()
{
TCHAR buf[BUFFER_SIZE] = TEXT("This is the destination");
TCHAR pbData[BUFFER_SIZE] = TEXT("This is the source");
MyCopyMemory(buf, pbData, COPY_SIZE*sizeof(TCHAR), BUFFER_SIZE*sizeof(TCHAR));
_tprintf(TEXT("Destination buffer contents: %s
"), buf);
}