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.