Hi Eric,
I'm going to try to help but this'll quick so it may not be perfect
but may get you going in the right direction so that I or others on
the list can help out better.
Looks like your sample of your code needs improvement. Did you mean:
struct s {
int var1
int var2
};
void caller()
{
struct s the_struct;
callie(&the_struct);
}
void callie(struct s *s)
{
// switch (something) { // Doesn't matter for troubleshooting
// case 0: // Ditto
s->var1=4;
s->var2=20;
// printf("%d %d\n", var1,var2); // Your code
printf("%d %d\n", s->var1, s->var2);
// break; // Doesn't matter for troubleshooting
// default: // Ditto
// break; // Ditto
// } // Ditto
// printf("%d %d\n", var1,var2); // Your code
printf("%d %d\n", s->var1, s->var2);
}
BTW, is is a general programming problem and not specific to any TS
product.
Happy to help.
----
Andy
--- In "berryma4" <> wrote:
>
> Hello!
>
> 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);
> break;
> default:
> break;
> }
> printf("%d %d\n", var1,var2);
>
>
> This outputs under x86:
> 4 20 (or in hex: 0x04 0x14)
> 4 20 (or in hex: 0x04 0x14)
>
> This outputs under arm:
> 4 20 (or in hex: 0x04 0x14)
> 262144 1310720 (or in hex: 0x40000 0x140000)
>
> Thank you!
> Eric
>
------------------------------------
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/
|