Hi,
 I met a problem as show below:

void FunctionA(unsigned char *pLen)
{
   *pLen = 16;
   printf("T2 %d\r\n", *pLen);
   return;
}

void FunctionB(void)
{
   unsigned char ucLen = 0;
   printf("T1 %d\r\n", unLen);
   FunctionA(&ucLen);
   printf("T3 %d\r\n", unLen);
   return;
}

It is a multi-process project. One of the process will call FunctionB, but the result is not 0->16->16. It is 0->16->0. There are several other processes running in the backgroud. But there is no pre-empt process related to this function, or re-entry call of this function. I don't know who modify my local variable? Who can help me to think out other reason to modify my local variable in this example?
Br/Laurent

_________________________________________________________________
Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/


/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/

Reply via email to