Non capisco perché complicarsi così la vita...
codice:
int numero=123456;
int cifre[5*sizeof(numero)*8/10]; // ogni 10 cifre binarie ci sono sicuramente meno di 5 cifre decimali
int i;
for(i=0; numero!=0; ++i)
{
    cifre[i]=numero%10;
    numero/=10
}
// in cifre ora ci sono le cifre di numero (complessivamente sono in numero di i)