Como inicializar o ponteiro estático com malloc em C?

Eu estou tentando iniciar uma variável estática (dentro de uma função) com malloc em C, mas estou recebendo o "inicializador não erro constante". Eu sei que não posso iniciar uma estática com constantes não em C, mas alguém pode pensar em uma solução? Eu preciso do código para ter o mesmo efeito que isso:

static int *p = (int *)malloc(sizeof(int));

Existe um truque / solução alternativa?

EDIT: Eu tenho uma função que é chamada toda vez que uma bandeira vai alto. Nesta função, estou criando e iniciando um novo thread. Eu declaro um ponteiro para uma estrutura e uso malloc para alocar memória, em seguida, passar esse ponteiro para o segmento. Então a função retorna o controle. Quando eu re-insira a função, o segmento que eu abri inicialmente ainda estará em execução e eu quero ser capaz de acessar a região de memória que eu passei originalmente para o segmento. É por isso que eu preciso de uma estática para que eu possa malloc na primeira chamada e, em seguida, use o mesmo endereço em chamadas subseqüentes. Dessa forma, posso obter informações do encadeamento. Tudo isso para evitar o uso de variáveis ​​globais.

questionAnswers(5)

yourAnswerToTheQuestion