Ultimamente quando scrivo C o C ++, dichiarerò tutte le mie variabili nello stack solo perché è un'opzione, a differenza di Java.
Tuttavia, ho sentito che è una cattiva idea dichiarare grandi cose in pila.
- Perché è esattamente così? Immagino che sia coinvolto lo stack overflow, ma non sono molto chiaro sul perché ciò accada.
- Quanta roba nello stack è troppo?
Non sto cercando di mettere file da 100 MB nello stack, solo una dozzina di array di kilobyte da usare come buffer di stringa o altro. Questo è un uso eccessivo dello stack?
(Scusate se duplicato, la ricerca dello stack continuava a dare riferimenti a Stack Overflow. Non c'è nemmeno un tag di stack di chiamate, ho appena usato quello astratto.)
std::vector<int>
variabile locale non consumerà molto spazio nello stack, la maggior parte dei dati è nell'heap.