LocalReAlloc 함수(winbase.h)

지정된 로컬 메모리 개체의 크기 또는 특성을 변경합니다. 크기가 증가하거나 감소할 수 있습니다.

참고 로컬 함수는 오버헤드가 더 크고 다른 메모리 관리 함수보다 더 적은 기능을 제공합니다. 설명서에서 로컬 함수를 사용해야 한다고 명시하지 않는 한 새 애플리케이션은 힙 함수를 사용해야 합니다. 자세한 내용은 전역 및 로컬 함수를 참조하세요.
 

구문

DECLSPEC_ALLOCATOR HLOCAL LocalReAlloc(
  [in] _Frees_ptr_opt_ HLOCAL hMem,
  [in] SIZE_T                 uBytes,
  [in] UINT                   uFlags
);

매개 변수

[in] hMem

다시 할당할 로컬 메모리 개체에 대한 핸들입니다. 이 핸들은 LocalAlloc 또는 LocalReAlloc 함수에서 반환됩니다.

[in] uBytes

메모리 블록의 새 크기(바이트)입니다. uFlags가LMEM_MODIFY 지정하면 이 매개 변수는 무시됩니다.

[in] uFlags

재할당 옵션입니다. LMEM_MODIFY 지정한 경우 함수는 메모리 개체의 특성만 수정합니다(uBytes 매개 변수는 무시됨). 그렇지 않으면 함수는 메모리 개체를 다시 할당합니다.

필요에 따라 LMEM_MODIFY 다음 값과 결합할 수 있습니다.

의미
LMEM_MOVEABLE
0x0002
고정 또는 이동 가능한 메모리를 할당합니다.

메모리가 잠긴 LMEM_MOVEABLE 메모리 블록 또는 LMEM_FIXED 메모리 블록이고 이 플래그가 지정되지 않은 경우 메모리를 제자리에 다시 할당할 수 있습니다.

 

이 매개 변수가 LMEM_MODIFY 지정하지 않으면 다음 값을 사용할 수 있습니다.

의미
LMEM_ZEROINIT
0x0040
메모리 개체의 크기가 커지면 추가 메모리 콘텐츠가 0으로 초기화됩니다.

반환 값

함수가 성공하면 반환 값은 재할당된 메모리 개체에 대한 핸들입니다.

함수가 실패하면 반환 값은 NULL입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

LocalReAlloc이 실패하면 원래 메모리가 해제되지 않고 원래 핸들과 포인터가 여전히 유효합니다.

LocalReAlloc이 고정 개체를 다시 할당하는 경우 반환되는 핸들의 값은 메모리 블록의 첫 번째 바이트 주소입니다. 메모리에 액세스하기 위해 프로세스는 단순히 반환 값을 포인터로 캐스팅할 수 있습니다.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 winbase.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

전역 및 로컬 함수

LocalAlloc

LocalFree

LocalLock

메모리 관리 함수