@varchar oder char: selbstredend geht das auch mit char. Das ist ein prototyped call, der nicht einmal exportiert wird, wo ist da das Problem (RTFM)

@Speicherverbrauch: in Deinem Beispiel geht es um lokale Variablen und die sind automatic storage, werden also zur Laufzeit allokiert und leben bis zum Ende der Prozedur. Physilaisch werden sie vom Heap des Prozesses geholt und da zählt nur die maximale Größe => Platz kostet das also nur bei denen. die zum Maximum beitragen (Rekursion, tief verschachtelte Procedures jeweils mit viele automatic storage) das kostet allenfalls Zeit zum allokieren und initialisieren des Speichers.

@Speicherverbrauch: Bei der Copy Strecke kommt es wieder drauf an, wo die drin steckt. Wenn die im globalen Teil des Moduls steckt und man gleichzeitig ein krummes Modul Design hat (z.B.: viele ein procedure Module) und auch noch mit den Activationgroups krause Dinge veranstaltet, dann kriegt man da vielleicht Probleme hin. Problemkandidaten sind auch statische Riesenarrays, die kosten Zeit und Platz, was noch schlechter ist.

Resumee: bei Beachtung einiger weniger einfacher Grundregeln im modularen Design ist Speicherplatz kein Faktor um den man sich besonders kümmern müsste. Vernünftig eingesetzt ist es besser der Büchse ein wenig mehr Speicher zu gönnen und ihn bei der Programmierung sinnig einzusetzen. Ansonsten gilt: wo kein Problem feststellbar ist (Laufzeit, Skalierbarkeit) versucht man auch nicht das nicht vorhandene Problem zu lösen.

D*B