0
以下的输出 “STR-3,” 不过,我希望它是 “STR-2,STR-3,”为什么下面仅包含STR-3
如果我改变的snprintf到的sprintf那么这工作如何我预期它;不应该snprintf和sprintf表现一样吗?
int main (int argc, char **argv)
{
char str[64];
str[0] = '\0';
snprintf(str, 64, "%s%s,", str, "str-2");
snprintf(str, 64, "%s%s,", str, "str-3");
printf("%s\n",str);
}
如果源和目的地重叠,则是UB –