Partilhar via


Ponteiros e alocação de memória

A capacidade de alterar a memória através de ponteiros geralmente requer que o servidor e o cliente aloquem memória suficiente para os elementos na matriz.

Quando um stub deve alocar ou liberar memória, ele chama funções de biblioteca em tempo de execução que, por sua vez, chamam as funções midl_user_allocate e midl_user_free. Essas funções não estão incluídas como parte da biblioteca de tempo de execução. Você precisa escrever suas próprias versões dessas funções e vinculá-las ao seu aplicativo. Desta forma, você pode decidir como gerenciar a memória. Ao compilar seu arquivo IDL no modo de compatibilidade OSF (/osf), você não precisa implementar essas funções. Você deve escrever essas funções nos seguintes protótipos:

void __RPC_FAR * __RPC_API midl_user_allocate(size_t len)

void __RPC_API midl_user_free(void __RPC_FAR * ptr)

Por exemplo, as versões dessas funções para um aplicativo podem simplesmente chamar funções de biblioteca padrão:

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);
}