Sorry für die dumme Frage, aber raffe es gerade nicht. 
möchte den Wert ändern auf den dieser Pointer zeigt:
Listenelement *p = kopf; // Pointer auf aktueller Knoten
...
if(p->fcn.cnt != 0){
DEBUG("Cnt != 0");
if(p->fcn.cnt > 0){
(*p->fcn.cnt)--; // hier möchte ich den Wert von fcn.cnt verringern, nicht den Pointer verschieben
Um nun den Wert im Speicher, nicht den Zeiger, zu erhöhen, wird *i++ nichts nützen. Das ist so, weil der Dereferenzierungsoperator * die niedrigere Priorität hat als das Postinkrement (i++). Um den beabsichtigten Effekt zu erzielen, schreibt man (*i)++, oder auch ++*i. Im Zweifelsfall und auch um die Les- und Wartbarkeit zu erhöhen sind Klammern eine gute Wahl.
Quelle: C-Programmierung: Zeiger – Wikibooks, Sammlung freier Lehr-, Sach- und Fachbücher
Das ist soweit klar, nur wie wende ich das im oberen Syntax an?
DANKE!
So wie in deinem Code. Erst den Zeiger dereferenzieren und dann dekrementieren.
Nein. Moment. Entweder so:
p->fcn.cnt--
Oder so (glaube ich):
(*p.fcn.cnt)--
Ersteres ist vernünftiger. Durch den -> Operator spricht du direkt über den Zeiger den Inhalt an. In dem wikibooks Code ist das nicht so, da da mit elementaren Datentypen gearbeitet wird. Nicht mit structs/Klassen
Also 1. Variante funktioniert, aber ich könnte wetten, das war exakt was ich (intuitiv) als erstes versucht haben, aber vor deinem Post ging es nicht :o
- Variante geht nicht:
Arduino: 1.6.4 (Linux), Platine: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"
/opt/arduino-1.6.4/hardware/tools/avr/bin/avr-g++ -c -g -Os -Wall -Wextra -fno-exceptions -ffunction-
request for member 'fcn' in 'p', which is of pointer type 'FcnList::Listenelement*' (maybe you meant to use '->' ?)
Vielen Dank!
Das ist mal eine richtig gute Fehlermeldung 
Selten dass man gleich gesagt bekommt wie es richtig geht
So würde es gehen:
(*p).value--;
Ist aber eher verwirrend. -> ist praktisch wie . zum Zugriff auf Klassen-Elemente, aber über einen Zeiger