Please forgive the potentially poorly worded question, but I'm unsure of how to search for this information as I have no concise way to describe it. I was looking through some APIs and found some interesting syntax which did not seem to mean what I thought.
virtual void CreateThing(HANDLE(*pParameterName)[3]);
Now I know this API (details below) wants me to create 3 handles and give them back, e.g.
pParameterName[0] = CreateHandle()
pParameterName[1] = CreateHandle()
pParameterName[2] = CreateHandle()
However I am having trouble grasping the meaning of the parameter syntax. Is this simply an array of 3 pointers to handles? I suspected so, when I try to use this more familiar syntax to override the function, it does not compile, indicating that they are not the same
virtual void CreateThing(HANDLE* pParameterName[3]);
In other words What is the difference between the two declarations?
P.S.
The real API is CreateSwapTextureSet in OpenVR for Drivers
virtual void CreateSwapTextureSet( uint32_t unPid, uint32_t unFormat, uint32_t unWidth, uint32_t unHeight, vr::SharedTextureHandle_t( *pSharedTextureHandles )[ 3 ] ) {}