【发布时间】:2017-08-15 15:46:11
【问题描述】:
我写了一个这样的函数,当参数x 甚至它不能按预期工作时,例如如果我在main 中输入printf("%s",maxCharac(2)),它将打印“aa”和一个额外的字符旁边,但使用奇数时它可以正常工作。
char *maxCharac(int x)
{
char *str=(char*)malloc(sizeof(char)*x);
for(int i=0;i<x;i++)
{
str[i]='a';
}
return str;
}
【问题讨论】:
-
不要忘记 0 终止你的字符串。这就是问题所在。重复链接,有人吗?
-
阅读
printf的要求。 -
printf("%.*s",2, maxCharac(2))将字符数组打印为可能缺少空字符的“字符串”。 -
另外,一旦你完成分配的内存,不要忽视释放它。
-
请提供有关您的函数所需行为的信息。对于这么简单的事情,并不难弄清楚,但总的来说它是重要的信息