First - use snprintf() instead of sprintf(). While THIS example with THIS specific value (101) will not overflow your 5 byte buffer, it is a good habit to get in to. For example:
sprintf( Holding, sizeof(Holding), “%i”, Input );
Second - can you be more specific about what “crash” means? Does your code end up somewhere you don’t expect, like a fault handler? Note that by default, all fault handlers are simply an empty loop, which usually ends up as a “jump to self” instruction in the startup code just after the call to main(). You may need real code in your fault handlers, or at least a breakpoint so you can inspect the fault registers to see what caused the fault.
Is that code snippet you showed us REALLY the entire function? Or is there more to it?