P
Die Liste ist eine dritte Möglichkeit, aber man sollte sich Gedanken über den Zeitverbrauch zur Laufzeit machen. Werden die Config Werte nur wenig gebraucht so ist dies eine gute Lösung, wird aber im Programmablauf sehr oft auf diese Werte zugegriffen zahlt man doch eine sehr hohe Zeitstrafe durch die Liste.
Zu deinen beiden Möglichkeiten die Strings statisch oder dynamisch anzulegen.
Beide Methoden machen Sinn. Ist dir die Maximallänge bekannt so kann man diese konfig Werte statisch anlegen, hat den Vorteil das man sich keine Gedanken um malloc und free machen muss, speziell im Falle eines fatalen Fehlers. Der Nachteil ist der unnötig belegte Speicherplatz
Ist die Länge der Strings nicht vorhersehbar oder die Anzahl der Strings sehr hoch so bietet sich das dynamische Verfahren an. Nachteil im fatalen Fehlerfall die allocs wieder zu freen, Vorteil minimaler Speicherverbrauch.
Man kann hier keine dogmatische Lösung angeben immer so oder so. Vielmehr muss man sich beim Projektbeginn genau diese Fragen stellen und dann für dieses Projekt die richtige Lösung wählen, dies kann auch mal die Lösung mit der Liste sein, speziell dann wenn man dem Kunden vielleicht die Möglichkeit geben will selber noch Daten zur Konfiguration hinzuzufügen.
Bei den von mir bearbeiten Projekten war die Anzahl der Konfig Parameter meist nicht so groß, deshalb habe ich aus Bequemlichkeit mesistens die statische Lösung gewählt, dabei waren aber unter den Konfig Parameteren auch des öfteren Filenamen mit deren Hilfe ich dann weitere Daten in entsprchende Strukturen und Listen eingetragen habe.