To tylko domyślny rozmiar. Jeśli potrzebujesz więcej, możesz uzyskać więcej - najczęściej mówiąc linkerowi, aby przydzielił dodatkowe miejsce na stosie.
Wadą posiadania dużych stosów jest to, że jeśli utworzysz wiele wątków, będą potrzebować po jednym stosie.Jeśli wszystkie stosy przydzielają wiele MB, ale nie używają go, przestrzeń zostanie zmarnowana.
Musisz znaleźć odpowiednie saldo swojego programu.
Niektórzy ludzie, jak @BJovke, wierzyć, że pamięć wirtualna jest zasadniczo wolny. Prawdą jest, że nie trzeba mieć fizycznej pamięci wspierającej całą pamięć wirtualną. Musisz przynajmniej podać adresy pamięci wirtualnej.
Jednak na typowym 32-bitowym komputerze PC rozmiar pamięci wirtualnej jest taki sam, jak rozmiar pamięci fizycznej - ponieważ mamy tylko 32 bity dla dowolnego adresu, wirtualnego lub nie.
Ponieważ wszystkie wątki w procesie współużytkują tę samą przestrzeń adresową, muszą ją podzielić między nie. Po tym, jak system operacyjny przejął swoją rolę, pozostało "tylko" 2-3 GB dla aplikacji. Ta wielkość jest limitem dla zarówno fizycznej, jak i wirtualnej, ponieważ nie ma już więcej adresów.
Dlaczego praktyczne byłoby tworzenie dużych obiektów na stercie? (Łańcuchy wywoływania zazwyczaj idą na stos). – Makoto
Myślę, że prawdziwa odpowiedź jest prostsza niż większość odpowiedzi przedstawia: "ponieważ tak zawsze robiliśmy i do tej pory wszystko było w porządku, więc po co zmieniać?" –
@JerryCoffin Czy przeczytaliście którąkolwiek z zamieszczonych do tej pory odpowiedzi? Jest więcej wglądu w to pytanie. – user1202136