C'est juste une taille par défaut. Si vous avez besoin de plus, vous pouvez obtenir plus - le plus souvent en demandant à l'éditeur de liens d'allouer de l'espace de pile supplémentaire.
L'inconvénient d'avoir de grandes piles est que si vous créez de nombreux fils, ils auront besoin d'une pile chacun. Si toutes les piles allouent des multi-MBs, mais ne les utilisent pas, l'espace sera gaspillé.
Vous devez trouver le bon équilibre pour votre programme.
Certaines personnes, comme @BJovke, pensent que la mémoire virtuelle est essentiellement gratuite. Il est vrai que vous n'avez pas besoin d'avoir de la mémoire physique pour sauvegarder toute la mémoire virtuelle. Vous devez au moins être capable de donner des adresses à la mémoire virtuelle.
Cependant, sur un PC 32 bits typique, la taille de la mémoire virtuelle est la même que celle de la mémoire physique, car nous ne disposons que de 32 bits pour toute adresse, virtuelle ou non.
Comme tous les threads d'un processus partagent le même espace d'adressage, ils doivent le diviser entre eux. Et après que le système d'exploitation ait pris sa part, il ne reste "que" 2 à 3 Go pour une application. Et cette taille est la limite pour les deux le physique et la mémoire virtuelle, car il n'y a tout simplement plus d'adresses.