Freigeben über


Zeiger und Speicherbelegung

Die Möglichkeit, den Arbeitsspeicher über Zeiger zu ändern, erfordert häufig, dass der Server und der Client genügend Arbeitsspeicher für die Elemente im Array zuweisen.

Wenn ein Stub Arbeitsspeicher zuweisen oder freigeben muss, ruft er Laufzeitbibliotheksfunktionen auf, die wiederum die Funktionen midl_user_allocate und midl_user_free aufrufen. Diese Funktionen sind nicht teil der Laufzeitbibliothek. Sie müssen Ihre eigenen Versionen dieser Funktionen schreiben und mit Ihrer Anwendung verknüpfen. Auf diese Weise können Sie entscheiden, wie Der Arbeitsspeicher verwaltet werden soll. Wenn Sie Ihre IDL-Datei im OSF-Kompatibilitätsmodus (/osf) kompilieren, müssen Sie diese Funktionen nicht implementieren. Sie müssen diese Funktionen in die folgenden Prototypen schreiben:

void __RPC_FAR * __RPC_API midl_user_allocate(size_t len)

void __RPC_API midl_user_free(void __RPC_FAR * ptr)

Beispielsweise können die Versionen dieser Funktionen für eine Anwendung einfach Standardbibliotheksfunktionen aufrufen:

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