Inicialização da matriz C em outro momento que não a declaraçã

Sei em C que posso fazer o seguint

int test[5] = {1, 2, 3, 4, 5};

Agora, isso é legal apenas ao declarar a matriz. No entanto, eu queria saber por que isso não é legal para fazer mais tarde? Mas, posteriormente, no programa, não é legal fazer o seguint

test[5] = {10, 20, 30, 40, 50}; 

Ou algo semelhante. Por que é isso? Sei que não é legal e não estou reclamando, mas alguém poderia me dar uma explicação mais técnica sobre por que não posso fazer isso? (ou seja, não basta dizer que a especificação C não permite isso ou algo assim)

Suponho que tenha algo a ver com o tempo em que a memória é alocada na pilha para a matriz, para que nesse ponto C possa preencher automaticamente meus valores, mas por que não pode fazê-lo mais tard

Obrigado rapaze

questionAnswers(10)

yourAnswerToTheQuestion