Pointer dan Alokasi Memori

Kemampuan untuk mengubah memori melalui pointer sering mengharuskan server dan klien mengalokasikan memori yang cukup untuk elemen dalam array.

Ketika stub harus mengalokasikan atau membebaskan memori, itu memanggil fungsi pustaka run-time yang pada gilirannya memanggil fungsi midl_user_allocate dan midl_user_free. Fungsi-fungsi ini tidak disertakan sebagai bagian dari pustaka run-time. Anda perlu menulis versi anda sendiri dari fungsi-fungsi ini dan menautkannya dengan aplikasi Anda. Dengan cara ini, Anda dapat memutuskan cara mengelola memori. Saat mengkompilasi file IDL Anda dalam mode kompatibilitas OSF (/osf), Anda tidak perlu menerapkan fungsi-fungsi ini. Anda harus menulis fungsi-fungsi ini ke prototipe berikut:

void __RPC_FAR * __RPC_API midl_user_allocate(size_t len)

void __RPC_API midl_user_free(void __RPC_FAR * ptr)

Misalnya, versi fungsi-fungsi ini untuk aplikasi cukup memanggil fungsi pustaka standar:

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