übergebenes Array, verarbeiten und weitergeben

Gast #3870315
Lesenswert?

Hallo,

ich übergebe einer Funktion ein Array und dessen Länge.
Diese Funktion soll nun dass Array einer weiteren Funktion weitergeben 
werden, nur dass ein weiteres Element an erster Stelle eingefügt wird 
eingefüht wird.

Gibt es eine einfachere Möglichkeit, als ein neues Array zu 
initialisieren und den Inhalt des übergebenen array1 in das neue zu 
kopieren (mit den neuen Element) und dann dieses neue array an die 
function2 zu übergeben?
1
uint8_t function1 (uint8_t *array1, uint8_t array1_length)
2
{
3
  //gesuchter Code   
4
  return function2(array1, array1_length + 1); 
5
}
6

7
uint8_t function2 (uint8_t *array2, uint8_t array2_length)

Danke
Michi
#3870421
Lesenswert?

Man kann keine Arrays übergeben, sondern einen Pointer auf ein Array. 
Mit Hilfe dieses Pointers kannst du das Array bearbeiten und reichst den 
Pointer an die nächste Funktion weiter. Du kannst aber in ein Array kein 
weiteres Element einfügen.

Was soll das Ganze denn werden?

mfg.
Gast #3870465
Lesenswert?

Man könnte das Array bereits 1 Element größer anlegen. In der Funktion, 
die function1 aufruft, erst ab array1[1] befüllen und trotzdem den 
Pointer auf array1, also auf das nicht initialisierte Element array1[0] 
an function1 übergeben. In function1 dann array1[0] befüllen. Und an 
function2 ebenfalls den Pointer auf array1 übergeben.
#3870638
Lesenswert?

Thomas Eckmann schrieb:
> Aber erzähl doch mal, wie man ein Array vergrössert. Man lernt ja nie
> aus.

von Array vergrößern habe ich kein Wort geschrieben, ich schrieb:

Walter S. schrieb:
> wenn noch Platz im Array ist kann man schon ein Element einfügen

das mache ich mit einer sogenannten for-Schleife, ich schiebe alle 
Elemente um einen Platz nach hinten und schreibe das neue Element auf 
den ersten, jetzt freien Platz

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