🔧 文字列 ・ string.h ・ C89
memmove の使い方void *memmove(void *dest, const void *src, size_t n);
メモリ領域を指定バイト数だけコピーする点はmemcpyと同じだが、コピー元とコピー先が重なっていても内部で考慮され正しく動作するように作られている安全版の関数。 内部的にはコピー方向を判定して前から詰めるか後ろから詰めるかを切り替えて安全性を確保している。
#include <stdio.h>
#include <string.h>
int main(void) {
char s[] = "abcdef";
memmove(s + 1, s, 4);
puts(s);
return 0;
}
アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ
memmove と一緒に使う関数memcmp
memcpy
memset
memset_explicit
strcat
strchr
strcmp
strcoll
strcpy
strcspn
strdup
strerror
strlen
strncat
strncmp
strncpy
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。