c - c 中返回一串零的函数

标签 c

我试图创建一个返回零数组和字符数组的函数 并在文件文本中打印此数组,但是当我返回字符串时,返回了附加字符

enter image description here

这是程序写入的文本文件字符串

enter image description here

这是我的功能:

 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/

相关文章:

c - android 在线 c 编译器

创建一个函数来复制 n 个字符,如 C 中的 strcpy

使用C语言将1个列表的元素复制到另一个列表中

c - memcpy 上的段错误

c++ - "Tabular Data"的 XML 或 CSV

c - BCD转Ascii和Ascii转BCD

c - 在字母表中向下移动一个字母?

c++ - gcc - 如何检测基于指针的内存访问

c - 如果 num 在 C 中小数点后没有数字,则浮点为 int

c - 如何查看另一个结构体中结构体的值