如何使用C将两个整数组合成一个没有malloc的字符串?

时间:2017-06-17 23:49:35

标签: c

我想以下列格式将两个整数组合成一个字符串: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;
}

1 个答案:

答案 0 :(得分:1)

只有当调用者通过了字符串的缓冲区时,才能在没有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));