다음을 통해 공유


CoTaskMemRealloc 함수(combaseapi.h)

이전에 할당된 작업 메모리 블록의 크기를 변경합니다.

구문

LPVOID CoTaskMemRealloc(
  [in, optional] LPVOID pv,
  [in]           SIZE_T cb
);

매개 변수

[in, optional] pv

다시 할당할 메모리 블록에 대한 포인터입니다. 이 매개 변수는 설명에 설명된 대로 NULL일 수 있습니다.

[in] cb

다시 할당할 메모리 블록의 크기(바이트)입니다. 이 매개 변수는 설명에 설명된 대로 0일 수 있습니다.

반환 값

함수가 성공하면 재할당된 메모리 블록을 반환합니다. 그렇지 않으면 NULL을 반환합니다.

설명

이 함수는 IMalloc::Realloc 과 동일한 방식으로 이전에 할당된 메모리 블록의 크기를 변경합니다. CoTaskMemRealloc을 호출하기 전에 CoGetMalloc 함수를 호출하여 OLE 할당자에 대한 포인터를 가져올 필요는 없습니다.

pv 매개 변수는 메모리 블록의 시작을 가리킵니다. pvNULL인 경우 CoTaskMemReallocCoTaskMemAlloc 함수와 동일한 방식으로 새 메모리 블록을 할당합니다. pvNULL이 아닌 경우 CoTaskMemAlloc에 대한 이전 호출에서 반환된 포인터여야 합니다.

cb 매개 변수는 새 블록의 크기를 지정합니다. 블록의 내용은 새 크기와 이전 크기 중 더 짧은 쪽까지는 변경되지 않습니다. 그러나 새 블록은 다른 위치에 있을 수 있습니다. 새 블록이 다른 메모리 위치에 있을 수 있으므로 CoTaskMemRealloc 에서 반환된 포인터가 pv 인수를 통해 전달된 포인터가 될 수 없습니다. pvNULL이 아니고 cb가 0이면 pv가 가리키는 메모리가 해제됩니다.

CoTaskMemRealloc 은 다시 할당된(및 이동 가능) 메모리 블록에 대한 void 포인터를 반환합니다. 크기가 0이고 버퍼 인수가 NULL 이 아니거나 블록을 지정된 크기로 확장하는 데 사용할 수 있는 메모리가 충분하지 않은 경우 반환 값은 NULL입니다. 첫 번째 경우 원래 블록이 해제됩니다. 두 번째 경우에서 원래 블록은 변경되지 않습니다.

반환 값이 가리킨 스토리지 공간은 모든 형식의 개체 스토리지를 위해 적절하게 정렬되도록 보장됩니다. void 이외의 형식에 대한 포인터를 얻으려면 반환 값에 캐스팅된 형식을 사용합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 combaseapi.h(Objbase.h 포함)
라이브러리 Ole32.lib
DLL Ole32.dll

추가 정보

CoTaskMemAlloc

CoTaskMemFree

IMalloc::Realloc