Forum: Compiler & IDEs Pointer Fehler???


von Stephan (Gast)


Lesenswert?

Hallo Leute,
ich bekomme hier gerade vom GCC Fehler beschrieben:
error: invalid type argument of '->'
Aber leider sehe ich den Fehler nicht.

Daher wollte ich mal euch um Hilfe bitten.

Fehler soll laut Zeilen Angabe alle Stellen mit "MyBuffer->..."
betreffen!

1
/*! \fn __inline void DBGU_SetCharToBuffer(tBufferCOM* MyBuffer, UCHAR zeichen)
2
 * 
3
 *  \brief Diese INLINE-Funktion schreibt, unter Berueksichtigung der Flags in MyBuffer, 
4
 *   das "zeichen" in MyBuffer->Buffer[]
5
 * 
6
 *  \param *MyBuffer 
7
 *  \param zeichen
8
 *
9
 */
10
__inline void DBGU_SetCharToBuffer(tBufferCOM* MyBuffer, UCHAR zeichen)
11
{
12
  if (MyBuffer->FlagsBuffer->stop==true)
13
    return;
14
    
15
  MyBuffer->Buffer[MyBuffer->IndexBuffer->wr_index]=zeichen;
16
        if (++MyBuffer->IndexBuffer->wr_index == DBGU_RX_BUFFER_SIZE) 
17
       MyBuffer->IndexBuffer->wr_index=0;
18
     
19
        if (++MyBuffer->IndexBuffer->counter == DBGU_RX_BUFFER_SIZE)
20
        {
21
                MyBuffer->IndexBuffer->counter=0;
22
                MyBuffer->FlagsBuffer->overflow=true;
23
        }
24
}

von Magnus Müller (Gast)


Lesenswert?

Ähm... ich bin zwar jetzt nicht so der C-Crack (oder wie die meisten 
hier so sagen "-Freak"), aber was ist wenn du "->" durch "." ersetzt?

z.B.:
1
    if (MyBuffer.FlagsBuffer.stop==true)

Gruß,
Magnetus

von yalu (Gast)


Lesenswert?

Vielleicht mal die Deklaration von tBufferCOM posten? Ich schätze, das 
ist keine Struktur.

von Stephan (Gast)


Lesenswert?

Hallo,
1
typedef struct{
2
  tFlagsBuffer FlagsBuffer;
3
  tFlagsCOM FlagsCOM;
4
  tIndexCOM IndexBuffer;
5
  u08 Buffer[DBGU_RX_BUFFER_SIZE];  
6
}tBufferCOM;

Doch "tBufferCOM" ist der Name für eine Struktur!

von Robert S. (razer) Benutzerseite


Lesenswert?

Aber die inneren Strukturen sind keine Poiter. Das sind STRUKTUREN.

Deshalb musse es heißen statt
1
  if (MyBuffer->FlagsBuffer->stop==true)
so:
1
  if (MyBuffer->FlagsBuffer.stop==true)

Das must du dann auf alle anderen Zugriffe übernehmen.

Gruß Robert

von Stephan (Gast)


Lesenswert?

DANKE.

Manchmal sieht man den Wald vor Bäumen nicht.

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.