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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.