320x100
MSDN: https://docs.microsoft.com/ko-kr/cpp/c-runtime-library/reference/memmove-s-wmemmove-s?view=msvc-170
원형은 다음과 같다.
errno_t memmove_s(
void *dest,
size_t numberOfElements,
const void *src,
size_t count
);
errno_t wmemmove_s(
wchar_t *dest,
size_t numberOfElements,
const wchar_t *src,
size_t count
);
변수명은 number of Elements 라고 되어있지만 갯수(_countof())가 아닌 사이즈(sizeof())를 넘겨야 된다.
예제는 seq 번째 데이터들을 앞으로 1칸씩 당겨오는 코드다.
int main()
{
int arr[4] = { 1,2,3,4 };
for (int i = 0; i < _countof(arr); ++i)
std::cout << arr[i] << ", " << std::endl;
int seq = 1;
::memmove_s(
arr + seq,
(_countof(arr) - seq) * sizeof(arr[0]),
arr + seq + 1,
(_countof(arr) - seq - 1) * sizeof(arr[0]));
for (int i = 0; i < _countof(arr); ++i)
std::cout << arr[i] << ", " << std::endl;
return 0;
}
다만 이름이 move라 메모리가 그대로 이동할 것 같지만 사실은 copy가 되고 있기 때문에 이전 sour부분에는 기존 데이터가 그대로 남는다.
320x100
'프로그래밍 > C,C++' 카테고리의 다른 글
[RapidJson] 가변 파라미터 함수로 json 값 추가하기 (0) | 2023.05.08 |
---|---|
확인할 수 없는 외부 기호 (0) | 2021.12.30 |
C2143 구문 오류: ';'이(가) '*'앞에 없습니다. (0) | 2021.12.20 |
매번 헷갈리는 const 정리 (0) | 2021.12.15 |
virtual, override, final 관련 정리 (0) | 2021.11.03 |