Zugriff auf Zeiger / Strukturen

Gast #1360998
Lesenswert?

Ich habe folgende Strukturen:
1
typedef struct b
2
{
3
   unsigned char* rd; 
4
} b_t;
5

6
typedef struct a
7
{
8
   struct b_t* ring_buff;
9
} a_t;
10

11
struct a_t* xxx

Mein Ziel ist es nun den Wert der durch
1
*xxx.ring_buff->rd
adressiert wird, mit seinem Nachfolger zu addieren.
da der Compiler mir auf alle meine Versuche mit Fehlermeldungen 
reagiert, hier meine Frage an Euch, wie funktioniert das?.
Meiner Meinung nach wäre folgenes plausibel, aber wie gesagt nicht 
Compilerfreundlich
1
 temp = *xxx.ring_buff->rd + *xxx.ring_buff->(rd+1)
Gast #1362414
Lesenswert?

Neue Frage:
[c]
unsigned char func(unsigned char* ptr){

      if(*ptr=='5')   return 1;
      else            return 0;
}

//Aufruf
func( &((unsigned char)'5') );
[\c]

Warum ist dieser Aufruf nicht erlaubt vom Compiler?

'5' wird doch in "gecastet" und die Adresse dieses gecasteten wird 
übergeben, was ja gleichbedeutend mit einem Pointer ist.
Gast #1362418
Lesenswert?

> Warum ist dieser Aufruf nicht erlaubt vom Compiler?

Ich würde vermuten, daß der  Compiler dir das mit irgendeiner 
Fehlermledung mitteilt. Leider kennst die nur du.

> '5' wird doch in "gecastet"

Genau das ist das Problem. Du versuchst, die Adresse vom Ergebnis des 
Casts zu bilden, und das geht nicht.

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