Я знаю в C, что могу сделать следующее.
int test[5] = {1, 2, 3, 4, 5};
Теперь это разрешено только при объявлении массива. Однако мне было интересно, почему это не законно делать позже? Но потом в программе не законно делать следующее.
test[5] = {10, 20, 30, 40, 50};
Или что-то подобное. Почему это? Я знаю, что это не законно, и я не жалуюсь, но может ли кто-нибудь дать мне более техническое объяснение, почему я не могу этого сделать? (т.е. не просто сказать, что C spec не позволяет это или что-то в этом роде)
Я предполагаю, что он должен что-то делать со временем, когда память распределяется в стеке для массива, поэтому в этот момент C может автоматически заполнить мои значения, но тогда почему это не может быть сделано позже?
Спасибо, ребята,