【发布时间】:2017-09-05 15:25:31
【问题描述】:
我写了一个这样的函数,当参数 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;
}
【问题讨论】:
-
你必须空终止它。在
for循环之后添加此行并将+ 1添加到malloc行。str[x] = NULL; -
你必须对你的字符串进行空终止,所以你的字符后面需要一个额外的字节。
-
不要,不要使用 malloc。
标签: c function-pointers