I'll contribute a little too. I use static arrays where I know that the number of elements in an array cannot change. For example, for icons. The program has a fixed number of icons, there is no need to store them in a dynamic field. Likewise, these fields contain only a handle, QB64 stores its own data for the images somewhere ... and sends us a handle. That's enough.
In order for a dynamic field to be dynamically oversized, it does not have to be SHARED, it is enough if is for the function passed as a parameter. I think this method is more suitable if you are working on a .BM function that will be used in many other programs in the future.
And now the question. I will have a dynamic field. However, I don't want to still write FUNCTION EXAMPLE (ARR () as something) as a function parameter, but I want to pass a handle there. A reference to the address of the field in memory. I'm going to do some experiments with it, because I think _MEM offers this possibility. The notation of the function will then be, I think, clearer, as the commands in QB64 do it.