Devo fare un piccolo programma capace di risolvere espressioni in notazione polacca inversa.

L'espressione va scritta su un'unica riga e dopo aver digitato invio bisogna calcolarne il risultato.

Il problema è che secondo le specifiche la lunghezza dell'espressione può arrivare a 1048576 bytes...

Ora mi chiedo: come faccio a memorizzare l'intera riga di input? L'unica cosa che mi è venuta in mente è:

char stringa[1048576];

scanf("%s", stringa);

Però allocare lo spazio per un vettore da un mega e poi usare magari solo 10 bytes mi sembra uno spreco, e poi non mi sembra molto pulita la cosa.

Suggerimenti?

Grazie in anticipo