Werte aus Struct-Array auslesen

Gast #612531
Lesenswert?

Hallo,
habe das zwar schon unter einem anderen Topic als Nachsatz im 10ten 
Reply gefragt, aber da wird das mangels aussagekräftigem Betreff sicher 
niemand (vor allem die Nachwelt...) finden.

Deshalb nochmal: Es scheint mir, als würde beim Auslesen der Daten eines 
Struct-Arrays immer eine 0 zurückgegeben. Also
1
if(myStructArray[i].someValue == 1)
2
{
3
...
4
}

geht immer schief.

Kennt jemand das Problem?

P.S. Falls das irgendwie gegen Forenreglen (Mehrfachposting) oder den 
guten Stil verstößt, bitte löschen, habe in den besten Absichten 
gepostet.

MfG Steffffan
#612536
Lesenswert?

Steffffan wrote:

> Deshalb nochmal: Es scheint mir, als würde beim Auslesen der Daten eines
> Struct-Arrays immer eine 0 zurückgegeben. Also

Das wäre dann ein schwerer Compiler-Fehler, den mit Sicherheit
schon jemand vor dir gefunden hätte. Solche Fehler fallen bei
der Entwicklertruppe des Compilers sofort auf und der Compiler
verlässt nie das 'Labor'.

Du wirst also irgendeinen anderen Fehler im Programm haben.
Gast #612556
Lesenswert?

> Dein "currentTask" aus dem anderen Thread - ist das als "volatile"
> deklariert?

Das i oder der currentTask ist volatile und natürlich spuckt die 
Watchlist an der entsprechenden Stelle eine 3 aus. Trotzdem danke für 
den Hinweis.

> Du wirst also irgendeinen anderen Fehler im Programm haben.

Glaub ich sofort, deshalb frage ich nach schmerzlich gemachten 
Erfahrungen anderer Progger, wie ein vergessenes volatile ;-)

Mit memcopy hat es einmal sogar geklappt, aber nach dem nächsten 
neucompilieren auch schon wieder nicht...

Wenn man die Compileroptimierungen abschaltet funktioniert es auch 
wieder, aber in der gcc-Doku steht, man muss wenigstens O1 machen, damit 
die delay.h benutzt werden kann.
Gast #612559
Lesenswert?

Lösung:

das volatile war schon eine gute Idee:

Man muss auch alle Member des structs volatile machen! (Und das, obwohl 
ich die Member ständig im Quellcode benutze, tolle "Optimierung"!)

Vielen Dank für den Input, war ein guter Tip!

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