【发布时间】:2014-07-23 15:23:06
【问题描述】:
我有以下用于整数的 putchar() 函数:
void write_uint(unsigned n) {
if (n / 10) write_uint(n / 10);
putchar(n % 10 + '0');
}
void write_int(int n) {
if (n < 0) {
putchar('-');
write_uint(-(unsigned)n);
}
else write_uint(n);
}
我正在尝试修改它以使用指针将整数转换为 char 数组,而不是写入控制台,如下所示:
void write_uint(unsigned n, char *p) {
if (n / 10) write_uint(n / 10, p);
*p++ = n % 10 + '0';
}
void write_int(int n, char *p) {
if (n < 0) {
*p++ = '-';
write_uint(-(unsigned)n, p);
}
else write_uint(n, p);
}
int n = 123456789;
char *str = malloc(13000), *p = str;
write_int(n, p);
*p++ = '\n';
然后打印字符串,但我得到的只是一堆空行。
感谢任何帮助
【问题讨论】:
-
调试器说什么?