如何使用 C 将两个整数合并为一个字符串而不使用 malloc



我想以以下格式将两个整数合并为一个字符串:x-y .我写了这个函数,它运行良好,但问题是我不想使用 malloc 或任何其他内存分配来执行此操作。

static char* intToTimeDate(int day,int hour){
    size_t size = 32;
    char *str = malloc ( size);
    snprintf ( str, size - 1, "%d-%02d", day, hour);
    return str;
}

只有在调用方将字符串的缓冲区传递给您时,您才能在不malloc的情况下执行此操作:

static void intToTimeDate(int day, int hour, char *buf, size_t sz){
    snprintf ( buf, sz, "%d-%02d", day, hour);
}

现在调用方可以传递缓冲区,并取回字符串:

char buf[32];
intToTimeDate(day, hour, buf, sizeof(buf));

最新更新