Entweder allozierst Du mit den üblichen alloc() auf dem Heap Deine
Array-Elemente und kettest Sie einfach per Pointer aneinander. Das
könnte zur Laufzeit geschen. Dieser Weg ist nur sinnvoll, wenn ersten
ein SW-Mechanismus den globalen Heap-Verbrauch überwacht und ggf.
weitere Allozierungsgesuche nicht durchführt, damit der MCU noch
arbeitsfähig bleibt. Wichtig: Nicht mehr benötigte Array-Element mit
free() wieder freigeben. Dieses hat mit einem mega8 vielleicht eher
wenig Sinn.
Ein mega2560 mit 8 kB RAM verkraftet so etwas schon eher.
Die andere Variante wäre das Speichern der Daten auf einem externen
EEPROM. Das ist zwar langsam, aber so kannst Du kaskadiert entsprechend
viel Speicherplatz physikalisch verfügbar machen. Naja, eine Verwaltung,
wie auch immer geartet, muß her.
Das Programmieren des Flashs (ROM) während der Laufzeit mit Daten
verstehe ich nicht, wenn Du es so gemeint hast. Weil dann der MCU in
einem anderen Modus wäre.
Generell ist es eher ungeschickte, Datenstrukturen des PC auf MCUs
abzubilden. Vielleicht solltest Du die Aufgabe Datenerfassung auf den
MCU verlagern und das sammeln, sortieren und packen auf den PC.
Ich hoffe, dass diese Gedanke Dir wie auch immer weiterhelfen.
...