Richard is right. It's a it unusual but you can do it.
JGSurface m_pJGraphicSurface[2][4];
JGSurface* pFirstRow = m_pJGraphicSurface[0];
JGSurface* pSecondRow = m_pJGraphicSurface[1];
It's unusual because if we only have 2 of something and that is a constant then they are very often just given two separate variable names, like FirstRow and SecondRow rather than being tied together in one array unless that's needed for other reasons. Even if the memory needs to be all together that can be achieved with a
struct
e.g.
struct GraphicSurfaces
{
JGSurface FirstRow[4];
JGSurface SecondRow[4];
};
It's a matter of style and of course what you need to achieve.