int* scomponiInteroInSingoleCifre(int input)
{
if(input<0)
input*=-1;
int* toRet=(int*)malloc(sizeof(int));
int* tr;
int i=0;
toRet[i++]=-1;
toRet=(int*)realloc(toRet,sizeof(int)*(i+1));
do
{
*(toRet+i)=input%10;
i++;
input/=10;
toRet=(int*)realloc(toRet,sizeof(int)*(i+1));
}while(input/10>0||(input/10==0&&input%10!=0));
tr=(int*)malloc(sizeof(int)*(i));
int j;
for(j=0;j<i;j++)
*(tr+(i-j-1))=toRet[j];
free(toRet);
return tr;
}
const char* convertiArrayInteriInConstCharPointer(int* toConv)
{
int contDim;
for(contDim=0;toConv[contDim]!=-1;contDim++);
char* toRet=(char*)malloc(sizeof(char)*(contDim+1));
int i;
for(i=0;i<contDim;i++)
{
toRet[i]=toConv[i]+48;
}
toRet[contDim]='\0';
return toRet;
}
int main()
{
int input;
char* redo=(char*)malloc(sizeof(char));
char test=1,t;
printf("Inserire un intero: ");
scanf("%i",&input);
const char* stringaCostante=convertiArrayInteriInConstCharPointer(scomponiInteroInSingoleCifre(input));
printf("%s\n", stringaCostante);
system("pause");
}