😸
[C] memmove 関数
機能
2つのメモリ領域を重なりに注意して安全にコピーする関数[1]
使用例
abcdecf
と表示する
\n
は改行を表す エスケープシーケンス[2]
コード
char str[] = "abcdef";
memmove(str + 3, str, 3);
printf("%s\n", str);
全文
#include <stdio.h>
#include <string.h>
void main() {
char str[] = "abcdef";
memmove(str + 3, str, 3);
printf("%s\n", str);
}
実行結果
abcabcf
配列内の要素をずらす
コード
int arr[] = {1, 2, 3, 4, 5};
memmove(arr + 1, arr, 4 * sizeof(int));
for(int i = 0; i < 5; i++) printf("%d ", arr[i]);
printf("\n");
全文
#include <stdio.h>
#include <string.h>
void main() {
int arr[] = {1, 2, 3, 4, 5};
memmove(arr + 1, arr, 4 * sizeof(int));
for(int i = 0; i < 5; i++) printf("%d ", arr[i]);
printf("\n");
}
実行結果
1 1 2 3 4
Discussion