dovrebbe essere qualcosa del genere, ovviamente invece degli uno, nelle posizione apposite ci sono i resti, ma sono dettagli xD
codice:
#include <stdio.h>
#include <stdlib.h>
#define  size (sizeof(int)*8)

int* dec_bin(int);

int main()
{
   int n,*p,i;
   printf("inserire numero decimale da convertire: ");
   scanf("%d",&n);
   p=dec_bin(n);
   printf("risultato: ");
   for(i=0;i<size;i++)
   printf("%d",p[i]);
   return 0;
}

int* dec_bin(n)
{
   int i,*p,m=1;
   i=size-1;
   p=(int*)calloc(size,sizeof(int));

    if(p != NULL)
     {
      while(i>0 && m<=0)
       {
           p[i]=n&m;
           m=m<<1;
           i--;
       }
     }
     return p;
}
dove sto sbagliando?