diff --git a/kernel/src/print/print.c b/kernel/src/print/print.c index 8e1dea5..3269009 100644 --- a/kernel/src/print/print.c +++ b/kernel/src/print/print.c @@ -38,20 +38,22 @@ static void printhex(size_t num) { static void printdec(size_t num) { int i; - char buf[21] = {0}; + char buf[32]; if (!num) { - putchar('0'); + puts("0"); return; } - for (i = 19; num; i--) { - buf[i] = (num % 10) + 0x30; - num = num / 10; + buf[32] = 0; + + for (i = 31; num; i--) { + buf[i] = (num % 10) + '0'; + num /= 10; } i++; - puts(buf + i); + puts(&buf[i]); } void printf(const char *format, ...) {