cc內(nèi)存分配與內(nèi)存對(duì)齊

cc內(nèi)存分配與內(nèi)存對(duì)齊

ID:34415526

大?。?6.61 KB

頁(yè)數(shù):13頁(yè)

時(shí)間:2019-03-05

cc內(nèi)存分配與內(nèi)存對(duì)齊_第1頁(yè)
cc內(nèi)存分配與內(nèi)存對(duì)齊_第2頁(yè)
cc內(nèi)存分配與內(nèi)存對(duì)齊_第3頁(yè)
cc內(nèi)存分配與內(nèi)存對(duì)齊_第4頁(yè)
cc內(nèi)存分配與內(nèi)存對(duì)齊_第5頁(yè)
資源描述:

《cc內(nèi)存分配與內(nèi)存對(duì)齊》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)

1、不明白內(nèi)存分配和指針的可以看看,其實(shí)這本是我們老師留的一個(gè)操作系統(tǒng)科技小論文作業(yè),不知道寫(xiě)什么,干脆把以前收藏的經(jīng)典C內(nèi)存分配的文章整理并修改了一下。??????此文章有2個(gè)用處,1:這是個(gè)小論文,格式完整,大家可以復(fù)制回去交作業(yè);2:這是整理的經(jīng)典C內(nèi)存分配小教程(也加了些我自己的觀點(diǎn)),不明白內(nèi)存分配的可以看看。還有很重要的一個(gè)問(wèn)題:?????這篇文章引用的很多內(nèi)容我也不知道究竟是出自誰(shuí)手,知道作者是誰(shuí)的麻煩告訴下,我好謝謝他。(記得都是csdn里面找的)tag:操作系統(tǒng)論文內(nèi)存分配內(nèi)存對(duì)齊c語(yǔ)

2、言?xún)?nèi)存分配免費(fèi)論文下載.doc正文:關(guān)于程序設(shè)計(jì)的內(nèi)存分配問(wèn)題freec(遼寧工程技術(shù)大學(xué)?軟件學(xué)院?計(jì)SJ07-3?遼寧?葫蘆島?125000)[摘??要]在大多數(shù)低層程序設(shè)計(jì)中,由于內(nèi)存分配與內(nèi)存對(duì)齊問(wèn)題所帶來(lái)的bug所占比重非常大。本文對(duì)內(nèi)存分配中的分配空間類(lèi)型、作用、方法、適用范圍、優(yōu)缺點(diǎn)以及內(nèi)存對(duì)齊問(wèn)題中的對(duì)齊原因、對(duì)齊規(guī)則等進(jìn)行了詳細(xì)的說(shuō)明,并結(jié)合大量c語(yǔ)言代碼進(jìn)行闡述與分析。[關(guān)鍵詞]內(nèi)存分配;堆棧原理;內(nèi)存對(duì)齊;?1?引言操作系統(tǒng)的內(nèi)存分配問(wèn)題與內(nèi)存對(duì)齊問(wèn)題對(duì)于低層程序設(shè)計(jì)來(lái)說(shuō)是非常

3、重要的,對(duì)內(nèi)存分配的理解直接影響到代碼質(zhì)量、正確率、效率以及程序員對(duì)內(nèi)存使用情況、溢出、泄露等的判斷力。而內(nèi)存對(duì)齊是常常被忽略的問(wèn)題,理解內(nèi)存對(duì)齊原理及方法則有助于幫助程序員判斷訪(fǎng)問(wèn)非法內(nèi)存。?2?程序的內(nèi)存分配問(wèn)題?一、一般C/C++程序占用的內(nèi)存主要分為5種????1、棧區(qū)(stack):類(lèi)似于堆棧,由程序自動(dòng)創(chuàng)建、自動(dòng)釋放。函數(shù)參數(shù)、局部變量以及返回點(diǎn)等信息都存于其中。????2、堆區(qū)(heap):?使用自由,不需預(yù)先確定大小。多數(shù)情況下需要由程序員手動(dòng)申請(qǐng)、釋放。如不釋放,程序結(jié)束后由操作系

4、統(tǒng)垃圾回收機(jī)制收回。????3、全局區(qū)/靜態(tài)區(qū)(static):全局變量和靜態(tài)變量的存儲(chǔ)是區(qū)域。程序結(jié)束后由系統(tǒng)釋放。????4、文字常量區(qū):常量字符串就是放在這里的。?程序結(jié)束后由系統(tǒng)釋放。5、程序代碼區(qū):既可執(zhí)行代碼。?例:#includeintquanju;/*全局變量,全局區(qū)/靜態(tài)區(qū)(static)*/voidfun(intf_jubu);/*程序代碼區(qū)*/intmain(void)/**/{???????intm_jubu;/*棧區(qū)(stack)*/???????stat

5、icintm_jingtai;/*靜態(tài)變量,全局區(qū)/靜態(tài)區(qū)(static)*/???????char*m_zifum,*m_zifuc="hello";/*指針本身位于棧。指向字符串"hello",位于文字常量區(qū)*/???????void(*pfun)(int);/*棧區(qū)(stack)*/???????pfun=&fun;???????m_zifum=(char*)malloc(sizeof(char)*10);/*指針內(nèi)容指向分配空間,位于堆區(qū)(heap)*/???????pfun(1);????

6、???printf("&quanju???:%x/n",&quanju);???????printf("&m_jubu???:%x/n",&m_jubu);???????printf("&m_jingtai:%x/n",&m_jingtai);???????printf("m_zifuc???:%x/n",m_zifuc);???????printf("&m_zifuc??:%x/n",&m_zifuc);???????printf("m_zifum???:%x/n",m_zifum);??????

7、?printf("&m_zifum??:%x/n",&m_zifum);???????printf("pfun??????:%x/n",pfun);???????printf("&pfun?????:%x/n",&pfun);???????getch();???????return0;}voidfun(intf_jubu){???????staticintf_jingtai;???????printf("&f_jingtai:%x/n",&f_jingtai);???????printf("&f_j

8、ubu???:%x/n",&f_jubu);/*棧區(qū)(stack),但是與主函數(shù)中m_jubu位于不同的棧*/}?輸出結(jié)果:&f_jingtai:404020&f_jubu???:22ff40&quanju???:404070&m_jubu???:22ff74&m_jingtai:404010m_zifuc???:403000&m_zifuc??:22ff6cm_zifum???:3d24e0&m_zifum??:22ff70pfun??????:4013af&pfu

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。