指针和内存分配

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

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