我试图创建一个返回零数组和字符数组的函数 并在文件文本中打印此数组,但是当我返回字符串时,返回了附加字符
这是程序写入的文本文件字符串
这是我的功能:
char *zeros_maker (int kj,int kj1)
{
char *zeros;
zeros = (char *) malloc(sizeof(char)*(kj-kj1));
int i;
for(i =0;i<kj-kj1;i++)
zeros[i]='0';
printf("%s\n",zeros);
return zeros;
}
我在文件中打印时使用的指令
fprintf(pFile,"%c%s%c &",34,zeros_maker(added_zeros,0),34);
提前致谢
最佳答案
C 中的
'0'
是用于数字零的编码值。 C 标准不允许值为 0。
您需要将 NUL 终止符 '\0'
添加到 char
数组的末尾,以便 printf
函数使用才能正常工作。
否则,您将面临运行超过 char
数组末尾的风险,并产生未定义的结果。
最后,不要忘记在程序中的某个时刻释放
分配的内存。
关于c - c 中返回一串零的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44967865/