Moje pytanie dotyczyło tego, po co w ogóle są tablice statyczne. Jakie były przyczyny tego, że zdecydowano się na alokację statyczną i dynamiczną. Jakby nie można było wszystkiego zrobić dynamicznie. A jeżeli jednak nie jaka jest tego techniczna przyczyna :)
Statyczna ma szczególnie prosta implementację w języku maszynowym. A wręcz brak implementacji, rzecz się dzieje podczas ładowania programu, przed przekazaniem pierwszego JMP do kodu.
I jedyną dostępną w C inicjacją inną niż zerową (w C++ są opcjonalne konstruktory, czyli kod)
masz dobrą intuicję, nie jest to konieczne. Wiele nowszych języków nie ma tego wynalazku,. i nie ma z tego jakiegoś cierpienia.
Jest wręcz na odwrót: wielość modeli pamięci w C to duży problem.
Jakby wiedzieć na 100%,w C "acha, ten blok pamięci był alokowany dynamicznie, więc zrobię mu free", wiele rzeczy by się uprościło.
To nawet nie jest tak, ze GC w Javie czy C# to wielkie lekarstwo. Bo rodzaj C, czy C++, w którym by była gwarancja "każdy obszar pamięci nie ma innego pochodzenia niż dynamiczne", świat byłby prostszy. Nawet z free()
/ delete
Żegnaj o pamięci statyczna, nie będzie nam ciebie brakowało [^]
:(