Ultimamente, quando eu estiver escrevendo C ou C ++, declararei todas as minhas variáveis na pilha apenas porque é uma opção, ao contrário do Java.
No entanto, ouvi dizer que é uma má idéia declarar coisas grandes na pilha.
- Por que exatamente é esse o caso? Eu acho que o estouro de pilha está envolvido, mas não sei muito bem por que isso acontece.
- Quanta coisa na pilha é demais?
Não estou tentando colocar arquivos de 100 MB na pilha, apenas uma dúzia de matrizes de kilobytes para usar como buffers de string ou qualquer outra coisa. Isso é muito uso de pilha?
(Desculpe, se duplicado, a busca por pilha continuava fornecendo referências ao estouro de pilha. Não há nem uma etiqueta de pilha de chamada, apenas usei a abstrata.)
std::vector<int>
variável local não ocupa muito espaço na pilha, a maioria dos dados está no heap.