Originariamente inviato da shinichi
uff pero se leggi bene ...
Calma ... ho letto bene ...
Ma se lo facessi tu, leggeresti che ti ho detto che e' sbagliato usare un array allocato internamente ad una funzione e restituirne il puntatore ... in ogni caso ...
Il comportamento di un programma che fa questo tipo di operazione, risulta indefinito ...
Fai cosi' ...
codice:
char *dectobin(int decimale)
{
int contatore=decimale, i=0;
while(contatore)
{
contatore/=2;
i++;
}
char *arraybin = (char *)calloc(i+1, sizeof(char));
for(--i; i>0 || i==0; i--, decimale /= 2)
arraybin[i] = (decimale % 2 == 0) ? '0' : '1';
return arraybin;
}
int main()
{
char *p = dectobin(256);
printf("%s\n", p);
free(p);
return 0;
}