I'm using Zephyr RTOS on nRF52832, and I need to convert int
(> 10) into char
.
I have this function :
char* int2char(int data)
{
int test[7] = {0};
char c[7];
int nbdata = powerTen(data);
int i, rest = 0;
for (i=0;i <= nbdata ; i++)
{
int pow = power(10,nbdata-i);
test[i] = data /pow - rest;
c[i] = '0' + test[i];
// subtract everything that has been calculated before
rest = rest*10 + test[i]*10;
}
printk("in function : int2char C : %c\n",*c);
printk("in function : int2char C : %c\n",*(c+1));
printk("in function : int2char C : %c\n",*(c+2));
printk("in function : int2char C : %c\n",*(c+3));
printk("in function : int2char C : %c\n",*(c+4));
printk("in function : int2char C : %c\n",*(c+5));
printk("in function : int2char C : %c\n",*(c+6));
return c;
}
And this in main()
:
char *c = int2char(987654);
printk("int2char C : %c\n",*c);
printk("int2char C : %c\n",*(c+1));
printk("int2char C : %c\n",*(c+2));
printk("int2char C : %c\n",*(c+3));
//...
in Putty, I have: Putty Screen for the printk
printk
in function works well but not in main
. I have tried several things and searched for hours, nothing works.