Ukazatele a přidělení paměti
Schopnost měnit paměť pomocí ukazatelů často vyžaduje, aby server a klient přidělily dostatek paměti pro prvky v poli.
Když zástupný procedura musí přidělit nebo uvolnit paměť, volá funkce knihovny runtime, které následně volají funkce midl_user_allocate a midl_user_free. Tyto funkce nejsou součástí knihovny runtime. Potřebujete napsat vlastní verze těchto funkcí a propojit je s vaší aplikací. Tímto způsobem se můžete rozhodnout, jak spravovat paměť. Při kompilaci souboru IDL v režimu OSF (/osf) nemusíte tyto funkce implementovat. Tyto funkce musíte napsat do následujících prototypů:
void __RPC_FAR * __RPC_API midl_user_allocate(size_t len)
void __RPC_API midl_user_free(void __RPC_FAR * ptr)
Například verze těchto funkcí pro aplikaci mohou jednoduše volat standardní funkce knihovny:
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);
}