다음을 통해 공유


IMalloc::Realloc 메서드(objidl.h)

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

구문

void * Realloc(
  [in] void   *pv,
  [in] SIZE_T cb
);

매개 변수

[in] pv

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

[in] cb

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

반환 값

메서드가 성공하면 반환 값은 다시 할당된 메모리 블록에 대한 포인터입니다. 그렇지 않으면 NULL입니다.

설명

이 메서드는 메모리 블록을 재할당하지만 해당 콘텐츠가 초기화되도록 보장하지는 않습니다. 따라서 호출자는 이후에 메모리를 초기화해야 합니다. 정렬 및 유지 관리 정보에 필요한 공간 때문에 할당된 블록이 cb 바이트보다 클 수 있습니다.

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

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

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

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

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 objidl.h(ObjIdl.h 포함)

추가 정보

IMalloc