0

私は C プログラミングにまったく慣れていませんが、for ループを使用する以外に、char 配列を特定のインデックスから始まる別の char 配列にコピーできる関数があるかどうか疑問に思っていましたか?

たとえば、 の要素 4 を開始点として 使用sourceして、 の内容全体をコピーしたいとします。バイナリデータになります。これはできますか?bufferbuffersourcememcpy

4

3 に答える 3

2

はい、memcpyデータをコピーするように設計されています。ソースと宛先は、メモリ内の任意の場所にすることができます (読み取り/書き込みが許可されているメモリである限り)。

あなたの特定の質問への答えとして:

memcpy(buffer+4, source, length);

ソース領域とターゲット領域が重なる可能性がある場合は、memmove代わりに使用してください。

memmove(buffer+4, source, length);
于 2013-09-03T11:17:45.153 に答える
1

はい、memcpy はそれを行うことができます。ちょうど試して

memcpy(buffer + 4, source, numberOfBytesToCopy);

これは memcpy 固有のものではありません。単純なポインター演算です。

于 2013-09-03T11:15:24.573 に答える