これは C での私のコード スニペットです。
char *str = NULL;
int len = -1;
// Get length
len = snprintf(NULL, 0, "[%d]", 2);
// Allocate str
str = (char *)malloc(len + 1);
// Assign str
snprintf(str, len, "[%d]", 2);
assert(len == 3);
// Display str
puts(str);
これが表示されるはず[2]
です。そしてlen
こちらが3です。
ただし、このコードを実行すると表示されるのは[2
これはなぜですか?