Como descobrir tamanho de um vetor em uma struct encadeada?

Tem hora que dá um branco danado.
Vou explicar, já tentei de varias formas descobrir o tamanho de um vetor de bytes onde é guardada informações sobre um caractere que vou exibir no glcd.
Os arquivos são gerados usando este programa http://code.google.com/p/lcd-image-converter/.
Para facilitar o entendimento, segue um pequeno arquivo gerado pelo programa.
Para acesso aos bytes do vetor faço por exemplo (Font6.chars[0].image[0].font[0];), onde acesso o primeiro byte do caractere '0', até ai sem problema.
Mais a pergunta é, como descobrir o tamanho de (const unsigned char image_data_FontX_0x30[50] ) dentro de uma struct encadeada?
Se faço sizeof(Font6.chars[0].image[0].font[0]) meu retorno é '1', que está certo pois me retorna um byte de tamanho.
Se faço sizeof(Font6.chars[0].image[0].font) meu retorno é '4', o por que eu não entendo.
Então como faço para ter o retorno '50' que é o tamanho do vetor?
Desde já agradeço.
Vou explicar, já tentei de varias formas descobrir o tamanho de um vetor de bytes onde é guardada informações sobre um caractere que vou exibir no glcd.
Os arquivos são gerados usando este programa http://code.google.com/p/lcd-image-converter/.
Para facilitar o entendimento, segue um pequeno arquivo gerado pelo programa.
- Código: Selecionar todos
// filename:
// name: FontX
// family: MS Shell Dlg 2
// size: 14
// style: Bold
// included characters: 012
// antialiasing: <value not defined>
// type: proportional
// encoding: UTF-8
//
typedef struct {
const unsigned char *font;
const int width;
const int height;
} tImage;
typedef struct {
const long int code;
const tImage *image;
} tChar;
typedef struct {
const int length;
const tChar *chars;
} tFont;
const unsigned char image_data_FontX_0x30[50] = {
0xff, 0xf8,
0xff, 0xf8,
0xff, 0xf8,
0xff, 0xf8,
0xff, 0xf8,
0xf0, 0x78,
0xe0, 0x38,
0xc0, 0x18,
0xc2, 0x18,
0x87, 0x08,
0x87, 0x08,
0x87, 0x08,
0x87, 0x08,
0x87, 0x08,
0x87, 0x08,
0x87, 0x08,
0x87, 0x08,
0xc2, 0x18,
0xc0, 0x18,
0xe0, 0x38,
0xf0, 0x78,
0xff, 0xf8,
0xff, 0xf8,
0xff, 0xf8,
0xff, 0xf8
};
const tImage FontX_0x30 = { &image_data_FontX_0x30[0], 13, 25};
const unsigned char image_data_FontX_0x31[50] = {
0xff, 0xf8,
0xff, 0xf8,
0xff, 0xf8,
0xff, 0xf8,
0xff, 0xf8,
0xf8, 0x78,
0xf8, 0x78,
0xc0, 0x78,
0xc0, 0x78,
0xc0, 0x78,
0xf8, 0x78,
0xf8, 0x78,
0xf8, 0x78,
0xf8, 0x78,
0xf8, 0x78,
0xf8, 0x78,
0xf8, 0x78,
0xf8, 0x78,
0xc0, 0x08,
0xc0, 0x08,
0xc0, 0x08,
0xff, 0xf8,
0xff, 0xf8,
0xff, 0xf8,
0xff, 0xf8
};
const tImage FontX_0x31 = { &image_data_FontX_0x31[0], 13, 25};
const unsigned char image_data_FontX_0x32[50] = {
0xff, 0xf8,
0xff, 0xf8,
0xff, 0xf8,
0xff, 0xf8,
0xff, 0xf8,
0xe0, 0x78,
0xc0, 0x18,
0xc0, 0x08,
0xde, 0x08,
0xff, 0x08,
0xff, 0x08,
0xff, 0x08,
0xfe, 0x18,
0xfe, 0x18,
0xfc, 0x38,
0xf8, 0x78,
0xf0, 0xf8,
0xe1, 0xf8,
0xc0, 0x00,
0xc0, 0x00,
0xc0, 0x00,
0xff, 0xf8,
0xff, 0xf8,
0xff, 0xf8,
0xff, 0xf8
};
const tImage FontX_0x32 = { &image_data_FontX_0x32[0], 13, 25};
const tChar FontX_array[] = {
// character: '0'
{0x30, &FontX_0x30},
// character: '1'
{0x31, &FontX_0x31},
// character: '2'
{0x32, &FontX_0x32}
};
const tFont FontX = { 3, &FontX_array[0] };
Para acesso aos bytes do vetor faço por exemplo (Font6.chars[0].image[0].font[0];), onde acesso o primeiro byte do caractere '0', até ai sem problema.
Mais a pergunta é, como descobrir o tamanho de (const unsigned char image_data_FontX_0x30[50] ) dentro de uma struct encadeada?
Se faço sizeof(Font6.chars[0].image[0].font[0]) meu retorno é '1', que está certo pois me retorna um byte de tamanho.
Se faço sizeof(Font6.chars[0].image[0].font) meu retorno é '4', o por que eu não entendo.
Então como faço para ter o retorno '50' que é o tamanho do vetor?
Desde já agradeço.