读书人

c++程序编译完生成exe还跟编译器有关吗

发布时间: 2012-02-09 18:22:27 作者: rapoo

c++程序编译完生成exe还跟编译器有关吗
c++程序编译完生成exe,以后exe运行还跟编译器有关吗

[解决办法]
无关
[解决办法]
哪里有编译器给一些对象分配内存?
[解决办法]
静态分配不是编译器分配,还是系统分配。
[解决办法]
内存都是由系统分配的 即使你用编译器调试的时候

静态的在数据段,程序加载时就分配
动态的是代码段中由代码申请的吧



[解决办法]
静态也是要程序运行后才能分配阿!
但是静态的地址是确定的,像游戏修改器,就可以改这个确定的地址的值达到修改游戏数据的目的;而动态的不同,地址是不确定的,通过malloc或new返回,所以游戏修改就不能直接指定地址了。

[解决办法]
至于静态、动态的实现么,似乎是前者是在栈中分配的(汇编里面push、pop之类的,个人理解,可能有误),而后者是在堆中分配的。
其实一开始不清楚这些概念也无所谓阿,反正做多了,以后自然会明白。
[解决办法]
操作系统如何知道程序运行时怎么来分?
--------------------------------------
其实你的程序里面都有啊,比如静态分配int a=0;
做的事情就是在数据区分配一块内存。
动态分配的话就是在另外一块区域分配内存,都是你程序里面做的(只不过这部分代码不用你自己写,C++里面帮你做了)
[解决办法]
楼主可以写一段代码,在调试模式下看看汇编代码,很多东西就明白了

读书人网 >VC/MFC

热点推荐