I am having some trouble settling on a way to represent a structure that contains a pointer to an array of shorts in my managed code. The struct looks like this:
typedef struct
{
short size;
unsigned short** shortValues;
} UnmanagedStruct;
memory for 'shortValues' is allocated inside unmanaged code -- therefore even though that field is simply a pointer to an array of short values, an additional level of indirection was added so that allocated memory is seen by the caller (managed code) too. The 'size' field represents the number of elements in the array. How do I represent this in managed code?
I thought I'd pass it in just an IntPtr, then I couldn't figure out how to access the values once the unmanaged call returns.