【发布时间】:2015-10-24 15:29:18
【问题描述】:
我正在尝试格式化和合并字符串(使用 sprintf),然后使用 printf 打印它们。但它不起作用,我不知道为什么。 错误是字符串未初始化。
int main() {
char wochentag[] = "Freitag";
int tag = 13;
char monat[] = "Mai";
int jahr = 1927;
char *string;
char *array=(char *) malloc(26*sizeof(char));
sprintf (string,"%s" "%d" "%s" "%d",wochentag,tag,monat,jahr);
printf("%s\n", string);
free(array);
return 0;
}
【问题讨论】:
-
我没有看到任何问题,但您似乎需要将格式说明符括在引号中。而
(* char)不是有效的演员表。 -
@Fabian -
array已分配但从未使用过。string已使用但从未分配。你看到问题了吗? -
好的,谢谢大家,我终于明白了!
-
你不应该强制转换malloc的返回值:stackoverflow.com/q/605845/1025391