Dernièrement, lorsque j'ai écrit du C ou du C ++, je déclarerai toutes mes variables sur la pile simplement parce que c'est une option, contrairement à Java.
Cependant, j'ai entendu dire que c'est une mauvaise idée de déclarer de grandes choses sur la pile.
- Pourquoi est-ce exactement le cas? Je pense que le débordement de pile est impliqué, mais je ne sais pas très bien pourquoi cela se produit.
- Combien de choses sur la pile, c'est trop?
Je n'essaye pas de mettre des fichiers de 100 Mo sur la pile, juste une douzaine de tableaux de kilo-octets à utiliser comme tampons de chaîne ou autre. Est-ce trop d'utilisation de la pile?
(Désolé en cas de doublon, la recherche de la pile continue de donner des références à Stack Overflow. Il n'y a même pas de balise de pile d'appel, je viens d'utiliser l'abstrait.)
std::vector<int>
variable locale ne consommera pas beaucoup d'espace de pile, la plupart des données étant en tas.