Forum: Compiler & IDEs Werte aus Struct-Array auslesen


von Steffffan (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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

von Karl H. (kbuchegg)


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.

von Steffffan (Gast)


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.

von Steffffan (Gast)


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!

von Steffffan (Gast)


Lesenswert?

Sorry, falsche Entwarnung... Hat wieder nur "zufällig" funktioniert. 
Einmal neu kompiliert und schwups ist wieder alles hinüber.

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.