printf()与fprintf()函数的问题

下面代码直接Segment fault出错:
printf(">@;?.=@?>)>%25135501313>;0=71-<;2;6%:<>;#####");

原因可能是遇到%号后,开始算占位符,至于占位符具体怎么算还不是太清楚,出现段错误是因为后面的变长参数可能不匹配导致的。上面代码变长参数为0。

若要输出%,还得:
printf("%%")


bug产生的原因是使用方法不正确,后面那句对于异常字符串可能产生异常,而前面的则不会:
fprintf(stdout, "%s", str->s);
fprintf(stdout, str->s);

你可能感兴趣的:(printf)