我写了一个这样的函数,当参数 x
为偶数时,它无法按预期工作,例如,如果我输入 printf("%s",maxCharac(2 ))
在 main 中,它将打印“aa”及其旁边的一个额外字符,但如果是奇数,则可以正常工作。
char *maxCharac(int x)
{
char *str=(char*)malloc(sizeof(char)*x);
for(int i=0;i<x;i++)
{
str[i]='a';
}
return str;
}
最佳答案
C 中的字符串需要以 NUL ('\0'
) 字符结尾,因此您始终必须分配一个额外的空间来存储它。这是您的代码已更正以修复该问题。
char *maxCharac(int x)
{
char *str=malloc(sizeof(char)*(x+1));
for(int i=0;i<x;i++)
{
str[i]='a';
}
str[x]='\0';
return str;
}
关于c - 函数返回意外值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45696463/