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 %dn", var1,var2); // Your code
printf("%d %dn", s->var1, s->var2);
// break; // Doesn't matter for troubleshooting
// default: // Ditto
// break; // Ditto
// } // Ditto
// printf("%d %dn", var1,var2); // Your code
printf("%d %dn", s->var1, s->var2);
}
BTW, is is a general programming problem and not specific to any TS
product.
Happy to help.
----
Andy
--- In ts-7000%40yahoogroups.com">ts-7000
yahoogroups.com, "berryma4" <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 %dn", var1,var2);
> break;
> default:
> break;
> }
> printf("%d %dn", 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
>
.