c++程序编译完生成exe还跟编译器有关吗 c++程序编译完生成exe,以后exe运行还跟编译器有关吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那么关于编译器给一些对象分配内存是怎么回事?如果是编译时分配,那么与运行就没有关系了,这部分分配的内存一直在计算机内存里?如果是运行时编译器给对象分配那么exe程序不就是根编译器有关? 操作系统怎么知道要分配的是静态还是动态,内存区的划分与编译器的不同是不同的,程序既然已经生成了exe,既然与编译器无关了,操作系统如何知道程序运行时怎么来分? 静态也是要程序运行后才能分配阿!但是静态的地址是确定的,像游戏修改器,就可以改这个确定的地址的值达到修改游戏数据的目的;而动态的不同,地址是不确定的,通过malloc或new返回,所以游戏修改就不能直接指定地址了。 至于静态、动态的实现么,似乎是前者是在栈中分配的(汇编里面push、pop之类的,个人理解,可能有误),而后者是在堆中分配的。其实一开始不清楚这些概念也无所谓阿,反正做多了,以后自然会明白。 操作系统如何知道程序运行时怎么来分?--------------------------------------其实你的程序里面都有啊,比如静态分配int a=0;做的事情就是在数据区分配一块内存。动态分配的话就是在另外一块区域分配内存,都是你程序里面做的(只不过这部分代码不用你自己写,C++里面帮你做了) 游戏服务端要学习那些技术? 拦截edit消息 [散分]散分了,没有可用分的童鞋要注意了。。。 怎样通过程序控制控件如Edit Control的Disabled,Multiline,Read Only属性? 初学MFC:关于CSplitterWnd的问题 image uploader停用了吗 请问下面这段代码错在哪里? ???如何实现键盘钩子(文章)? 怎样全选一个列表框中的全部项目??? 如何将unsigned char类型的数据赋给一个字符串类型的数据? 关于DirectX 怎么实现主对话框中的各子对话框间的互相调用!?急!
如果是运行时编译器给对象分配那么exe程序不就是根编译器有关?
但是静态的地址是确定的,像游戏修改器,就可以改这个确定的地址的值达到修改游戏数据的目的;而动态的不同,地址是不确定的,通过malloc或new返回,所以游戏修改就不能直接指定地址了。
其实一开始不清楚这些概念也无所谓阿,反正做多了,以后自然会明白。
--------------------------------------
其实你的程序里面都有啊,比如静态分配int a=0;
做的事情就是在数据区分配一块内存。
动态分配的话就是在另外一块区域分配内存,都是你程序里面做的(只不过这部分代码不用你自己写,C++里面帮你做了)