Matrice di dimensione variabile.

Standardoil:
su arduino: quasi a nulla, ma secondo me è buona pratica di programmazione limitare le risorse impiegate

Si in genere magari si, ma su Arduino, dove gira UN solo programma e che ha a disposizione tutte le risorse, non ha senso.

Comunque se volessimo fare un programma portatile, tra UNO e MEGA e magari anche ESP non possiamo 'partire' con l'impegnare il massimo della memoria

Ma in quel caso imposti la dimensione massima (sarà una #define per capirci) proprio in base alla piattaforma corrente rilevata verificando i relativi simboli ed assicurare che non si vada ad allocare più memoria del necessario.
Ad esempio per riconosce una MEGA:

#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)

Poi se uno vuole sbattersi a usare malloc() e free(), contento lui.. :wink: