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

一个做了10年VC++开发的软件工程师认为在32位机器上可以动态申请4G内存

2013-09-09 
一个做了10年VC++开发的程序员认为在32位机器上可以动态申请4G内存晚上在公司食堂吃饭,大家谈话逐渐谈到C+

一个做了10年VC++开发的程序员认为在32位机器上可以动态申请4G内存
      晚上在公司食堂吃饭,大家谈话逐渐谈到C++的内存分配问题。其中一个做windows开发的同事的观点让我愕然。
      据说这位同事在windows上用VC++进行开发已经有十年有余。他声称,在32bit的windows上,一个进程可以一次new出来一个3G或者4G的内存,我差点就当场笑喷了。
      他的理由是由于虚拟内存的缘故,只要虚拟内存允许,一次就可以申请4G的内存空间。此人又扯到物理内存分段、物理地址不连续云云。
      我的直觉是此人没把物理内存地址、线性内存地址和逻辑内存地址搞明白。
      我虽然是走linux后端开发,但也不至于混蛋到他那种程度。32bit上的os的进程的逻辑地址空间上限是4G,linux内核占去2G(windows上是1G),还有代码段(.txt)、静态和全局数据段(bss和data)段,这些都要占去一部分内存,更别说给函数栈也得分配点,焉能申请4G的内存空间?让鬼给他变戏法变出4G的内存?
      至于扯到分段和虚拟地址,那是物理地址的事,跟一个进程的逻辑地址空间大小又有什么关系?


我表示  据说这位同事在windows上用VC++进行开发已经有十年有余

估计都是简单的基本的界面操作,复制别人代码完成工作而已!
没有自己真正的弄清楚原因,不懂内存管理!

楼主 ,笑笑就好!笑笑就好!一个做了10年VC++开发的软件工程师认为在32位机器上可以动态申请4G内存

热点排行