You're returning the address of a local array. Once Hello() finishes its execution, all local, non-static, variables/object are removed from the stack. The address you're returning pertains to a local array. So when you access the address during the printf() call, the address is invalid, and therefore, contains garbage.
Your best bet is to print the string during the call to Hello().