memcpy関数のC++での使い方は?
memcpyはメモリ領域内のあるデータセクションの内容を別のメモリ領域にコピーするためのC/C++標準ライブラリ関数です。
その関数のプロトタイプは次のとおりです。
void* memcpy(void* dest, const void* src, size_t count);
パラメータの説明:
- dest:複製後のデータの格納先を指す、ターゲットのメモリ領域のポインタ
- ソースから、つまり、コピーされるデータの位置にある、メモリ領域へのポインタ
- count:コピーするバイト数、つまりコピーが必要なデータの長さ。
指定されたメモリー領域srcの内容を、カウントcountバイトだけ指定されたメモリー領域destにコピーする関数。ソースとターゲットの領域にオーバーラップ(重なり合い)が存在する場合、memcpy関数は安全ではなく、未定義の動作を引き起こす可能性があります。この場合、memmove関数を使用する必要があります。
戻り値: dest を指すポインタを返します。
この例では、パラフレーズする必要はありません。
#include <iostream>
#include <cstring>
int main() {
char source[] = "Hello, World!";
char destination[50];
std::memcpy(destination, source, std::strlen(source) + 1);
std::cout << "Copied string: " << destination << std::endl;
return 0;
}
上記のコードは与えられた文字列 “Hello, World!” をターゲット配列 destination にコピーし、コピーした文字列分を出力します。