Si può anche usare snprintf, un'alternativa "sicura" (standard ANSI C99) a sprintf.

A parte le possibili soluzioni è importante rendersi conto che in C i buffer overflow sono sempre in agguato!