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