我想以以下格式将两个整数合并为一个字符串: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));