In cima a lxrec's
bella risposta, non esiste una serie contigua a pila di tipo variabile del tipo di cui penso tu stia parlando dato che sarebbero troppo poco pratici. Esistono VLA in C che possono allocare una quantità sufficiente di spazio nello stack in base a una dimensione determinata in fase di esecuzione, ma non sono contenitori ridimensionabili e di dimensioni variabili del tipo che immagino tu abbia in mente.
Non è molto pratico avere strutture di dati contigui ridimensionabili usando lo stack, dal momento che non lo renderebbe più uno stack. Se hai allocato un grande array sullo stack e poi hai provato a realloc
e lo hai ridotto ad una dimensione più piccola, che cosa succederà lo stack se ci sono dati memorizzati alla fine dell'array (ad esempio dallo stack spill)? E come farà a fare spazio se l'array cresce?
Tutte queste domande portano a qualcosa di molto più complicato di uno stack e alla fine sconfiggono lo scopo della pila che ha il fascino di spingere semplicemente i dati e farli scoppiare in modo simmetrico. Una struttura collegata basata sullo stack, come una lista libera che utilizza una quantità limitata di spazio massimo (magari usando l'heap dopo che si esaurisce), potrebbe essere più fattibile di una che ha lo scopo di essere ridimensionabile e perfettamente contigua.
Probabilmente potresti diventare davvero fantasioso e progettare linguaggi che graffiano il metallo attorno a quell'idea, ma la struttura non sarebbe perfettamente contigua se vivesse in pila se dovesse crescere oltre una certa dimensione. Per lo meno dovrebbe dividere in due blocchi (uno in pila, uno in heap) o spostarsi interamente nell'heap dopo quel punto.