Lo scopo del programma e' quello di convertire un numero decimale in binario.
In ingresso prendo una stringa che contiene il numero decimale, la converto in un intero e poi genero una seconda stringa contenente il numeroo binario. Il fatto e' che dopo aver memorizzato la stringa del numero binario qualche volta (per es. con 300 e altri numeri) mi viene aggiunto un carattere alla fine della stringa (mi ha sempre aggiunto il char '@' ma credo che sia puro caso)... Allora ho provato ad inizializzare la stringa con char num_bin[DIM] = "0" ed il problema si risolve.... mi sapete spiegare come mai sto fatto?

codice:
/* num_da_conv = stringa contenente il numero decimale da convertire */
/* num_conv =  stringa che dovrà contenere il numero convertito in binario */
/* num_dec = numero decimale definito come integer */
/* base_num = 2 */
/* BASE_DEC = 10 */

/* Converto la stringa contenente il numero decimale in integer */

num_cifre = strlen(num_da_conv) - 1;
for (i = 0,
      num_dec = 0;
      i <= num_cifre;
      num_dec += (num_da_conv[i] - '0') * ceil(pow(BASE_DEC, (num_cifre - i))),
      i++);

/* Converto il numero decimale in binario */

for (i = 0,
      num_conv[0] = '0';
      num_dec > 0;
      i++)
      { 
       num_conv[i] = (num_dec % base_num) + '0');                    
       num_dec = num_dec / base_num;
      }