Inicializando uma matriz após a declaração

gcc 4.4.3 c89

Eu tenho o seguinte código como um exemplo do que estou tentando fazer. Eu não sei o tamanho real da matriz, até que eu entre na função. No entanto, acho que não posso definir o tamanho da matriz depois de a ter declarado. Eu preciso global, pois algumas outras funções precisarão acessar os nomes dos dispositivos.

Muito obrigado por todas as sugestões,

/* global */
char *devices_names[];

void fill_devices(size_t num_devices)
{
    devices_names[num_devices];

    /* start filling */
}

questionAnswers(4)

yourAnswerToTheQuestion