Forum: PC-Programmierung Array an Funktion übergeben


von Peter (Gast)


Lesenswert?

Hallo, ich möchte einen Array an eine Funktion übergeben und dort in 
einer variablen in einem Struct speichern.

die Funktion die die Daten speichern soll ist
1
DATEN daten; // struct
2
3
void setData(uint8_t length, uint8_t* data)
4
{
5
  daten.length = length;
6
  daten.data = ???;
7
}
ist es möglich die Daten irgendwie direkt in daten.data zu speichern? 
Oder muss ich mit einer for-schleife alle werte übertragen?

von foobar (Gast)


Lesenswert?

> Oder muss ich mit einer for-schleife alle werte übertragen?

Entweder das oder man nimmt memcpy.
1
void setData(uint8_t length, uint8_t* data)
2
{
3
  daten.length = length;
4
  memcpy(daten.data, data, length * sizeof(*data));
5
}

von Hans (Gast)


Lesenswert?

Hallo,

ist die deutsche Sprache wirklich so schwer?

von zitter_ned_aso (Gast)


Lesenswert?

Peter schrieb:
> direkt in daten.data zu speichern?

Welchen Datentyp hat data? Ist das ein Array?

von Peter (Gast)


Lesenswert?

zitter_ned_aso schrieb:
> Welchen Datentyp hat data? Ist das ein Array?

Ja genau,
unsigned int data[1024];

übergeben wird auch ein array unsigned int und einer maximalen länge von 
1024

von zitter_ned_aso (Gast)


Lesenswert?

Dann hat Array in der Funktion und in der Struktur verschiedene 
Datentypen?

von Peter (Gast)


Lesenswert?

Peter schrieb:
> unsigned int data[1024];

oha, nein
es ist uint8_t data[1024]; , was auch übergeben wird. Die Datentypen 
sind gleich

Da hatte ich was verwechselt

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.