Inicialización de la matriz C en un momento distinto de la declaración?

Sé en C que puedo hacer lo siguiente.

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

Ahora esto solo es legal al declarar la matriz. Sin embargo, me preguntaba por qué esto no es legal hacer más tarde. Pero luego, en el programa, no es legal hacer lo siguiente.

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

O algo similar. ¿Por qué es esto? Sé que no es legal, y no me estoy quejando, pero ¿alguien podría darme una explicación más técnica de por qué no puedo hacer esto? (es decir, no solo diga que la especificación C no lo permite o algo así)

Supongo que tiene que ver con el momento en que la memoria se asigna en la pila para la matriz, por lo que en ese punto C puede completar automáticamente mis valores, pero ¿por qué no puede hacerlo más tarde?

Gracias chico

Respuestas a la pregunta(10)

Su respuesta a la pregunta