You never verify that inventory[x]->slot[y] is valid, that could be your problem.
The other reason could be that for some reason you delete something in your array without removing that element. That would lead to the element in your array pointing at the adress with garbage in it.
Your issues sounds to me as if it is related to garbage collection. Especially as you say that it is working fine for some time and it then is going to crash.
To better help you I’d need to know how your array declaration looks like and how and what you add to it (UObject?).
As I see in your screenshots the array is a TArray. A wild guess would be that you didn’t mark it as managed by using UPROPERTY() in the declaration and it contains UObjects which aren’t referenced from somewhere else.
Hope this helps and if not please provide more informations.
If you need the other scripts as well, please tell me.
EDIT: I fixed it, I think. I moved stuff from my ItemList script which was all static variables and functions without uproperty etc. to my HUD script, and added uproperty to everything.
Make sure your TArray is also using the UPROPERTY() macro, in fact, pretty much every property should have this, otherwise there is a chance this will happen.
Glad to hear that you fixed your issue. For my understanding it was the missing UPROPERTY() so if that’s true, please mark the answer as solution so others know how to fix similiar issues.
Also having something named U…Struct might be misleading as U is the prefix for UObjects and F is the prefix for structs within the engine code base.