> (*sens).is_changed = 0;
Das könnte man auch einfacher schreiben:
sens->is_changed = 0;
> uint8_t giveSensorConfigTest(uint8_t index, ConfigSensor
> *out_sensor)
> {
> out_sensor = &AllSensorsConig[index];
> }
out_sensor ist ein Parameter. Die sind in C im Prinzip lokale Variablen,
die halt von außen initialisiert werden. out_sensor ist also eine lokale
Kopie des an die Funktion übergebenen Zeigers. Nach Beenden der Funktion
ist out_sensor weg und damit ist deine Zuweisung wirkungslos. Wenn deine
Funktion etwas per Parameter übergebenes ändern soll, mußt du einen
Zeiger darauf übergeben. in giveSensorConfigTest willst du aber nicht
ein Objekt vom Typ ConfigSensor ändern, sondern eins vom Typ 'Zeiger auf
ConfigSensor', also mußt du einen Zeiger auf 'Zeiger auf ConfigSensor'
übergeben.