小编Sho*_*hit的帖子

不打印垃圾值

为什么以下程序不打印垃圾值.据我所知,数组在堆栈上分配内存(即在编译时)和堆栈内存包含一些垃圾值.但它不是打印垃圾值.它打印1.只有当函数g(),数组b的大小>数组a的大小时才会打印垃圾值.当数组大小为g()>数组a的大小时,则打印12 1(在这种情况下)并作为垃圾值休息.

    void f()
    {
        int a[12],i=0;
        for(i=0;i<12;i++)
          a[i]=1;
    }
    void g()
    {
        int b[12],i=0;
        for(i=0;i<12;i++)
          printf("%d\n",b[i]);
    }
    int main()
    {
         f();
         g();
          return 0;
    }
Run Code Online (Sandbox Code Playgroud)

分配给数组b的内存是否与之前分配给数组a的内存相同?

c arrays printf garbage

0
推荐指数
1
解决办法
192
查看次数

标签 统计

arrays ×1

c ×1

garbage ×1

printf ×1