指针和内存分配

若要通过指针更改内存,通常需要服务器和客户端为数组中的元素分配足够的内存。

当存根必须分配或释放内存时,它会调用运行时库函数,这些函数又 调用midl_user_allocatemidl_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);
}