小编Jul*_*Vga的帖子

什么是堆栈的"标准"大小和C程序中的堆?

我已经读过Linux上的"标准"和初始堆栈大小约为8MB,Windows大约为1MB.

但堆分配如何工作?操作系统是否为进程堆设置了"虚拟"大小,就像它对已提交和保留内存的堆栈一样?

c heap stack

6
推荐指数
1
解决办法
3607
查看次数

为什么printf会打印最后一个数字?

编辑:我已经知道printf不是类型安全我只是在寻找一个关于究竟是什么发生的探索(我的意思是描述未定义的行为).

为什么我在第二个printf中打印"7",程序打印9.334354.我知道如果我不写7.0,这将不会被打印,但为什么要写第一个数字呢?

#include <stdio.h>  

int main()  
{  
    printf("%.2f\n", 9.334354);    
    printf("%.5f\n", 7);  
    printf("%03d\n", 9);  
    getchar();  
}
Run Code Online (Sandbox Code Playgroud)

这是输出

    9.33
    9.33435
    009
Run Code Online (Sandbox Code Playgroud)

c printf

4
推荐指数
1
解决办法
303
查看次数

为什么不提出异常?如果枚举大小小于100字节

联合的大小是95个字节,为什么如果我尝试在a处访问102位置,不会引发异常?或者我只是覆盖了另一个内存位置?

   #include<stdio.h>

  union u{
      char a[95];
      int b;
      char *c;
    };

   union u u1;
   int main()
   {
       u1.a[102] = 'b';
       printf("%c",u1.a[102]);
      return 0;
    }
Run Code Online (Sandbox Code Playgroud)

c unions

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

标签 统计

c ×3

heap ×1

printf ×1

stack ×1

unions ×1