Hi,

Can you post the full code for your test? I don't immediately see a reason
why getterB() shouldn't work. Maybe try to verify in getter B that nothing
odd has happened to the indexes a and b?

Best regards,
Martin

On Thursday, July 4, 2013, [email protected] wrote:

> Hi all,
>
> I am experiencing some strange memory bugs regarding arrays in my TinyOS
> application. Here is an example:
>
> uint32_t arr[6][3]; //global var
>
> void setter()
> {
> arr[1][2] = 34;
> }
>
> uint32_t getterA()
> {
> return arr[1][2];//34
> }
> uint32_t getterB()
> { uint8_t a = 1; uint8_t b = 2;
> return arr[a][b];//0
> }
> uint32_t getterC()
> { uint8_t a = 1; uint8_t b = 2; uint32_t *temp;
> temp = &(arr[a][b]);
> return *temp;//34
> }
> bool adrEqual()
> { uint8_t a = 1; uint8_t b = 2;
> return &(arr[1][2]) == &(arr[a][b]);//true
> }
>
> So when I call setter() and then one of the getters, I get the given
> values. The problem is of course getterB. I currently fixed this by using
> the workaround of getterC, but I would prefer fixing the problem and not
> just the symptoms. So if anyone has an idea what may cause this strange
> behavior I would be very thankful if he would share this with me.
>
> Best regards
>
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to