> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Enlaces de memoria

> Controle las asignaciones de memoria del SDK de PlayFab Services instalando enlaces personalizados de asignación y liberación con PFMemSetFunctions antes de PFInitialize.

# Administración de asignaciones de memoria

Con la API de C del SDK de PlayFab Services, puede especificar una devolución de llamada de función a la que el SDK llama cada vez que intenta asignar memoria. Si no especifica devoluciones de llamada de función, el SDK usa las rutinas estándar de asignación de memoria.

Para especificar manualmente sus rutinas de memoria, puede seguir estos pasos:

* Al inicio del juego:
  * Llame a [**PFMemSetFunctions**](/services/playfab/api-references/c/pfplatform/functions/pfmemsetfunctions) para especificar las devoluciones de llamada de asignación para asignar y liberar memoria.
  * Llame a [**PFInitialize**](/services/playfab/api-references/c/pfcore/functions/pfinitialize) para inicializar la biblioteca PlayFab Core.
  * Llame a [**PFServicesInitialize**](/services/playfab/api-references/c/pfservices/functions/pfservicesinitialize) para inicializar la biblioteca PlayFab Services.

<Info>
  El orden importa. **PFMemSetFunctions** debe ir antes de **PFInitialize**, y **PFInitialize** debe ir antes de **PFServicesInitialize**. Si omite la llamada explícita a **PFInitialize**, **PFServicesInitialize** inicializa Core internamente, pero en ese momento los enlaces de memoria aún no están aplicados, por lo que el SDK usa las rutinas de asignación predeterminadas en su lugar.
</Info>

```cpp theme={null}
    PFMemoryHooks playFabHooks{ MyAllocHook, MyFreeHook };
    PFMemSetFunctions(&playFabHooks);
    HRESULT hr = PFInitialize(nullptr); // Add your own error handling when FAILED(hr) == true
    hr = PFServicesInitialize(nullptr); // Add your own error handling when FAILED(hr) == true
```

* Mientras el juego se está ejecutando:
  * Cualquier llamada al SDK que asigne o libere memoria llama a las devoluciones de llamada de control de memoria especificadas.

* Cuando el juego se cierra:
  * Llame a [**PFServicesUninitializeAsync**](/services/playfab/api-references/c/pfservices/functions/pfservicesuninitializeasync) para recuperar todos los recursos asociados a PlayFab Services.
  * Llame a [**PFUninitializeAsync**](/services/playfab/api-references/c/pfcore/functions/pfuninitializeasync) para recuperar todos los recursos asociados a PlayFab Core.
  * Limpie el administrador de memoria personalizado del juego.

## Referencia

[Documentación de referencia de API](/services/playfab/api-references/c/pfplatform/pfplatform_members)


## Related topics

- [Administración de memoria en el SDK unificado de PlayFab](/es/services/playfab/sdks/unified-sdk/memory-management.md)
- [Ciclo de vida del SDK](/es/services/playfab/sdks/c/lifecycle.md)
- [Información general de la API de C de Services - PFPlatform.h](/es/services/playfab/api-references/c/pfplatform/pfplatform_members.md)
- [PFMemSetFunctions](/es/services/playfab/api-references/c/pfplatform/functions/pfmemsetfunctions.md)
- [Notas de la versión del SDK de C/C++ de PlayFab Services](/es/services/playfab/release-notes/playfab-c/index.md)
