我要将一个文本片段连接起来,比如“答案是”,加上一个有符号整数,得到输出“数字是42”。
我知道这段文本有多长(14个字符),但我不知道数字的字符串表示将有多少个字符。
我假设最坏的情况,最大的16位带符号整数有5个数字,再加上一个负号,所以以下代码是正确的吗?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *message;
message = malloc(14*sizeof(char)+(sizeof(int)*5)+1);
sprintf(message, "The answer is %d", 42);
puts(message);
free(message);
}