Theory of why this doesn't really work?

Ok Nick, I know the test3 is the way to do it, I was just experimenting :slight_smile:

But what about this:

char s[13];

char* test1(unsigned long a)
{
  sprintf(s,"<%lu>", a);
  return s;
}

This is working as well, and the variable isn't local anymore. But is it still wrong to use things like that instead of the method used in test3?