Sé en C que puedo hacer lo siguiente.Inicialización de la matriz C en otro momento que no sea la declaración?
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 para hacer más tarde. Pero luego, más adelante 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 ¿podría alguien darme una explicación más técnica de por qué no puedo hacer esto? (es decir, no digas que la especificación C no lo permite o algo así)
Supongo que tiene que hacer algo con el tiempo cuando 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 chicos
Así que si, hipotéticamente, que era el caso de que el estándar de C no permitiría que esto (aunque sería técnicamente posible), tendríamos que hacer algo diferente en su lugar? ¿O prefieres no obtener una respuesta? Solo quiero estar seguro. –
@NiklasB .: Supongo que en ese caso una conjetura bien argumentada sobre * por qué * los diseñadores del lenguaje C decidieron omitir esta característica estaría bien como respuesta. – Heinzi
@Heinzi: Oh, veo :) –