私は C プログラミングにまったく慣れていませんが、for ループを使用する以外に、char 配列を特定のインデックスから始まる別の char 配列にコピーできる関数があるかどうか疑問に思っていましたか?
たとえば、 の要素 4 を開始点として 使用source
して、 の内容全体をコピーしたいとします。バイナリデータになります。これはできますか?buffer
buffer
source
memcpy
はい、memcpy
データをコピーするように設計されています。ソースと宛先は、メモリ内の任意の場所にすることができます (読み取り/書き込みが許可されているメモリである限り)。
あなたの特定の質問への答えとして:
memcpy(buffer+4, source, length);
ソース領域とターゲット領域が重なる可能性がある場合は、memmove
代わりに使用してください。
memmove(buffer+4, source, length);
はい、memcpy はそれを行うことができます。ちょうど試して
memcpy(buffer + 4, source, numberOfBytesToCopy);
これは memcpy 固有のものではありません。単純なポインター演算です。