Frage zur C-Progrrammierung auf Mikrocontroller

Gast #3615061
Lesenswert?

Hallo,
ich schreibe ein C-Programm für einen Mikrocontroller und ich bitte euch 
um eure Hilfe bei einer kleinen Frage.
Ich möchte einer Funktion einen int-Wert übergeben, den die Funktion in 
ein 200 großes Array schreibt. Wennn ich die Funktion wieder aufrufe, 
soll die Funktion den nächsten Wert hinter den ersten Wert schreiben 
usw. Wenn das Array voll ist, verarbeitet die Funktion die Daten weiter. 
Bisher habe ich das scheinbar wenig elegant so gelöst, dass das array in 
der darüberliegenden Funktion angelegt wurden und der Funktion ein 
Pointer auf dieses Array übergeben wurde:
1
void funktion(int Wert, int* Array)
2
{
3
   /*Pseudocode:
4
   schreibe Wert in nächstes Feld des Arrays;
5
   if(Array voll)
6
      verarbeite Daten im Array;
7
   */
8
}
9

10

11
/*darüberliegende Funktion:*/
12
int array[200] = {0};
13
funktion(irgendeinwert, array);


Kann ich das auch irgendwie eleganter Lösen, dass ich das Array direkt 
in der Funktion anlege? Weil in der darüberliegenden brauche ich das 
Array eigentlich nicht.

Danke schonmal für eure Hilfe
Gast #3615066
Lesenswert?

ob es Sinn macht oder nicht, ..

[c]
void foo (int wert) {
  static int array[200];
  static unsigned char index = 0;

...

  if (index >= (sizeof (array) / 2))
    ; // Fehlerbehandlung
  else array[index++] = wert;

...
}
[c]

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren