首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

向各位朋友求个思路,多谢

2012-04-03 
向各位朋友求个思路,谢谢大概想法是,编译一小段代码,不是编译成2进制代码,而是编译成对应的C++映射函数序

向各位朋友求个思路,谢谢
大概想法是,编译一小段代码,不是编译成2进制代码,而是编译成对应的C++映射函数序列,映射函数自己写。
如:
int main()
{
int a = 10;
float b = 20;
.....
}

用自己的函数给a分配内存的时候,只能用new在堆上分配吗?或者是怎么能不能在栈上面分配?

还有,像一般编译器给每个函数分配的内存到底最大是多少 这 类似的信息知识到哪儿能找到?

朋友给个连接或者是思路,谢谢了


[解决办法]
栈的大小是有限的,一般也就几MB,除非你编译时指定。
栈溢出是常见的错误。
如果是大量的变量,则只能在堆上动态分配内存了。
使用内存池可以减少内存碎片的出现。
[解决办法]
分配多少内存是自己控制的啊,你想分配多少就多少呗
[解决办法]
用自己的函数给a分配内存的时候,只能用new在堆上分配吗?或者是怎么能不能在栈上面分配?
a:动态分配只能new了

还有,像一般编译器给每个函数分配的内存到底最大是多少 这 类似的信息知识到哪儿能找到?
a:首先,编译器不会分配内存。
其次,函数执行前会把栈指针往下挪,这相当于给函数内部的局部变量腾出内存空间,直到有足够的空间给局部变量使用,当然,本身栈的大小也是有限的,具体多大,不好说,Windows32上不会超过2G。
你学学汇编和window的原理就知道这些事情了。
《intel 汇编》
《Windows核心编程》

热点排行