<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          程序的內(nèi)存分配

          作者: 時(shí)間:2016-11-27 來源:網(wǎng)絡(luò) 收藏

          答:一個(gè)由c/C++編譯的程序占用的內(nèi)存分為以下幾個(gè)部分
          1、棧區(qū)(stack)—由編譯器自動(dòng)分配釋放,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。
          2、堆區(qū)(heap)—一般由程序員分配釋放,若程序員不釋放,程序結(jié)束時(shí)可能由OS回收。注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類似于鏈表,呵呵。
          3、全局區(qū)(靜態(tài)區(qū))(static)—全局變量和靜態(tài)變量的存儲(chǔ)是放在一塊的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域,未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域。程序結(jié)束后由系統(tǒng)釋放。
          4、文字常量區(qū)—常量字符串就是放在這里的。程序結(jié)束后由系統(tǒng)釋放。
          5、程序代碼區(qū)—存放函數(shù)體的二進(jìn)制代碼

          本文引用地址:http://www.ex-cimer.com/article/201611/322087.htm

          例子程序
          這是一個(gè)前輩寫的,非常詳細(xì)
          //main.cpp
          inta=0;//全局初始化區(qū)
          char*p1;//全局未初始化區(qū)
          main()
          {
          intb;棧
          chars[]="abc";//棧
          char*p2;//棧
          char*p3="123456";//123456看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();