我正在编写一些操作系统,我需要能够打印添加的变量。我有一个可用的 atoi 函数,所以我将它反转给我一个 itoa 函数。没有办法访问空闲内存,所以我需要弄清楚位数才能创建适当大小的 char 数组。我想我需要除以 10 才能得到它,然后将值模数到正确的位置。到目前为止,这是我的 c 代码:
char* itoa(int res) {
int size = 0;
int t = res;
while(t / 10 != 0) {
t = t/10;
size ++;
}
char ret[size+1];
ret[size] = '\0';
t = res;
int i = size - 1;
while(i > 0) {
ret[i] = t % 10;
t = t/10;
i--;
}
return ret;
}
截至目前,它什么也没打印。它有什么问题?