Punteros y asignación de memoria

La capacidad de cambiar la memoria a través de punteros a menudo requiere que el servidor y el cliente asignen suficiente memoria para los elementos de la matriz.

Cuando un código auxiliar debe asignar o liberar memoria, llama a funciones de biblioteca en tiempo de ejecución que, a su vez, llaman a las funciones midl_user_allocate y midl_user_free. Estas funciones no se incluyen como parte de la biblioteca en tiempo de ejecución. Debe escribir sus propias versiones de estas funciones y vincularlas con la aplicación. De este modo, puede decidir cómo administrar la memoria. Al compilar el archivo IDL en modo de compatibilidad con OSF (/osf), no es necesario implementar estas funciones. Debe escribir estas funciones en los siguientes prototipos:

void __RPC_FAR * __RPC_API midl_user_allocate(size_t len)

void __RPC_API midl_user_free(void __RPC_FAR * ptr)

Por ejemplo, las versiones de estas funciones para una aplicación simplemente pueden llamar a funciones de biblioteca estándar:

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