If you use Matrix1Utilities you can use
get arrayptr(
myArray()) from DBPro in order to get the pointer.
The DBPro engine keeps track of all arrays though so doing more with the pointer than changing the elements you already know are there isn't safe.
If you're writing a DLL plugin you can make DBPro automatically give you the pointer if you use the
H* letters as parameter type hint in your string table. It seems that DBPro only ever accepts such array pointer conversion if you put it as the first argument of your function however. If you want to resize it, your dll can depend on DBProCore.dll being loaded and thus use LoadLibrary on it and then call the built-in dbEmptyArray, dbInsertArrayElementAtBottom and so forth.
The DBPro arrays contain pointers to their elements so once you have the array of your desired size you can traverse it like so (assuming the array contains DWORD's):
DWORD *ref = (DWORD*)dwArrayPtr;
for(UINT l = 0; l < dwArraySize; l++)
*((DWORD*)ref[l]) = myNewDwordValues[l];
Also remember that you must return the new array pointer from your function, should it have changed (which it may if you resize it). Again only use the built in dbpro functions from DBProCore.dll for creating / resizing / releasing arrays or you'll get crashes when the engine tries to access your freed / can't access your unknown memory.
"Why do programmers get Halloween and Christmas mixed up?" Because Oct(31) = Dec(25)