调色板编程见到这样两个结构: 
typedef struct tagPALETTEENTRY { // pe 
    BYTE peRed; 
    BYTE peGreen; 
    BYTE peBlue; 
    BYTE peFlags; 
} PALETTEENTRY; 
typedef struct tagLOGPALETTE { // lgpl 
    WORD        palVersion; 
    WORD        palNumEntries; 
    PALETTEENTRY palPalEntry[1]; //??????????? 
} LOGPALETTE; 
有一段代码是这样写的: 
LOGPALETTE *pLogPal=(LOGPALETTE*)new char[sizeof(LOGPALETTE)+N*sizeof(PALETTEENTRY)]; 
if(pLogPal != NULL)

  pLogPal->palVersion=0x300; 
  pLogPal->palNumEntries=N;   for(int i=0; i <N; i++)
  { 
    pLogPal->palPalEntry[i].peRed=Red; 
    ... 
  } 
} 定义数组PALETTEENTRY palPalEntry[1];,为什么不是palPalEntry[palNumEntries]。
当i不等于1。则palPalEntry[i]没有定义,后面是如何给palPalEntry[i]赋值的呢?