读书人

编译时分配内存是什么意思?解决办法

发布时间: 2012-03-31 13:13:26 作者: rapoo

编译时分配内存是什么意思?
很多地方讲:比如常量和字符串什么的是在编译时就分配内存,一直不是很明白。我想问的是,程序还没运行就要占据内存,这样做是不是不太合理呢?如果在一台机器上编译好,在另一台机器上直接运行,那么那些需要编译时分配内存的东西,又会怎么样呢?

[解决办法]
不是编译时就要占用内存,而是,在编译时就知道应该占用多大内存,而不需要在运行时才知道需要占多大内存。如果是运行时才知道怎么样,那么一定是运行时通过某种判断才知道,这样,必定会影响效率,就像是虚拟函数,只有在运行时才知道具体调用的是哪一个函数,但,这个和判断还不一样,虚拟函数的运行时,仅仅是访问一个虚拟函数表所保存的指针,而该函数表所保存的指针,是具体的哪一个层次的类(基类还是派生类)。
[解决办法]
编译时就分配内存 是讲在编译时就能确定它的内存大小
[解决办法]
总之,编译时确定内存使用情况,是指,编译后的程序在运行时,int就占用4字节(32位机)double就占用8字节等等。
[解决办法]

探讨
编译时就分配内存 是讲在编译时就能确定它的内存大小

[解决办法]
在编译时确定分配的内存大小,而运行时候才分配给内存
[解决办法]
编译确定占多少大小,写进exe中,运行时操作系统分配这么大的内存

读书人网 >C++

热点推荐