全局分配一个很大的数组时,如果赋了初值,比如
int g_a[1024*1024*100] = {0};
那么编译的时候,这个内存是静态的。也就是说生成的程序至少会有100M。
如果没有赋初值,比如
int g_a[1024*1024*100];那么这个内存是在程序运行时,才加载的。生成程序大小不会有改变。
本文探讨了全局数组在编译时与运行时的不同内存分配方式。当数组被初始化时,其占用的空间为静态分配;而未初始化的数组则在运行时动态分配内存,不影响程序的初始大小。
456

被折叠的 条评论
为什么被折叠?



