Forum: Compiler & IDEs Struct Array an Funktion übergeben


von Pier S. (bigpier)


Lesenswert?

Hallo Leute,
ich möchte folgendes realisieren nämlich Struktur an eine Funktion 
übergebene.

So dachte ich mir das Ganze aber leider kann ich es so nicht compilieren
1
typedef volatile struct 
2
{
3
  uint8_t id[8];
4
  int16_t temperatur;
5
}sensors;
6
7
8
void auslesen(sensors er[])
9
{
10
  er[0]->temperatur mach damit was 
11
12
}
13
14
int main( void )
15
{
16
  sensors ow_Sensors[5];
17
  for(;;)
18
  {
19
     auslesen(ow_Sensors);
.

Was mache ich da falsch?

Vielen Dank
Peter

von Karl H. (kbuchegg)


Lesenswert?

Pier S. schrieb:


> void auslesen(sensors er[])
> {
>   er[0]->temperatur mach damit was

er[0].temperatur   mach was damit

du brauchst hier keine Pointer Syntax. Zumal du ja hier eigentlich einen 
Pointer auf ein Array hast (trotz anderer Syntax) und nicht ein Array 
von Pointern.
Dieser Pointer braucht dich aber nicht weiter interessieren. Der steckt 
an dieser Stelle bereits in der Zugriffssyntax mittels [0] drinnen. Du 
benutzt hier das "Array" auf genau die gleiche Art und Weise, wie du es 
auch in main tun würdest (mit Ausnahme von sizeof, denn in Wirklichkeit 
hast du in der Funktion kein Array, sondern nur einen Pointer darauf)

von Lalala (Gast)


Lesenswert?

Poste bitte compilierbaren Code, der das Problem auch reproduziert.
Nenne bitte Prozessor, Compiler und zitiere die Fehlermeldung.

von Pier S. (bigpier)


Lesenswert?

Vielen Dank

Karl Heinz schrieb:
> du brauchst hier keine Pointer Syntax. Zumal du ja hier eigentlich einen
> Pointer auf ein Array hast (trotz anderer Syntax) und nicht ein Array
> von Pointern.
> Dieser Pointer braucht dich aber nicht weiter interessieren. Der steckt
> an dieser Stelle bereits in der Zugriffssyntax mittels [0] drinnen. Du
> benutzt hier das "Array" auf genau die gleiche Art und Weise, wie du es
> auch in main tun würdest (mit Ausnahme von sizeof, denn in Wirklichkeit
> hast du in der Funktion kein Array, sondern nur einen Pointer darauf)

Ich bin gestern einfach total auf den Schlauch gestanden!

LG
Peter

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.