berryma4 wrote:
> I seem to be having a problem. Why are my struct variables shifting
> after exiting a switch statement?
>
> struct s {
> int var1
> int var2
> }
>
> switch (something) {
> case 0:
> s->var1=4;
> s->var2=20;
> printf("%d %d\n", var1,var2);
I would say it is a bug in the compilers that any of the prints worked at all.
There are several problems with your code. The first one is in the
assignments. s is delared as a struct and not a pointer to a struct. To
initialize the members of the struct you need to use s.var1 and not s->var1.
The print statements should also be using s.var1 and not just var1.
If you reference a structure member only by name, you wouldn't be able to tell
which var1 you would be accessing if you had two different structures that
both contained a member called var1.
--
Cheers!
Kevin.
http://www.ve3syb.ca/ |"What are we going to do today, Borg?"
Owner of Elecraft K2 #2172 |"Same thing we always do, Pinkutus:
| Try to assimilate the world!"
#include <disclaimer/favourite> | -Pinkutus & the Borg
------------------------------------
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|