포인터 및 메모리 할당

포인터를 통해 메모리를 변경하는 기능을 사용하려면 서버와 클라이언트가 배열의 요소에 충분한 메모리를 할당해야 하는 경우가 많습니다.

스텁이 메모리를 할당하거나 해제해야 하는 경우 런타임 라이브러리 함수를 호출하여 함수를 midl_user_allocate 호출하고 midl_user_free. 이러한 함수는 런타임 라이브러리의 일부로 포함되지 않습니다. 이러한 함수의 고유한 버전을 작성하고 애플리케이션과 연결해야 합니다. 이러한 방식으로 메모리를 관리하는 방법을 결정할 수 있습니다. OSF 호환성(/osf) 모드에서 IDL 파일을 컴파일하는 경우 이러한 함수를 구현할 필요가 없습니다. 다음 프로토타입에 이러한 함수를 작성해야 합니다.

void __RPC_FAR * __RPC_API midl_user_allocate(size_t len)

void __RPC_API midl_user_free(void __RPC_FAR * ptr)

예를 들어 애플리케이션에 대한 이러한 함수 버전은 단순히 표준 라이브러리 함수를 호출할 수 있습니다.

void __RPC_FAR * __RPC_API midl_user_allocate(size_t len)
{
    return(malloc(len));
}

void __RPC_API midl_user_free(void __RPC_FAR * ptr)
{
    free(ptr);
}