青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

淺談C內存分配(轉自LUPA論壇,infohunter)

很早之前寫的了,現在發到C版來。

關于C語言內存方面的話題要真說起來的話那恐怕就沒頭了,所以本文僅僅是一個淺談。
關于內存問題不同平臺之間有一定的區別。本文所指的平臺是x86的Linux平臺
用C語言做程序(其實其他語言也一樣),不僅要熟悉語法,其實很多相關的背景知識也很重要。在學習和研究C語言中內存分配的問題前,首先要了解一下Linux分配給進程(運行中的程序)的地址空間是什么樣的。
總的來說有3個段,即代碼段,數據段和堆棧段(學過匯編的朋友一定很熟悉了)。代碼段就是存儲程序文本的,所以有時候也叫做文本段,指令指針中的指令就是 從這里取得。這個段一般是可以被共享的,比如你在Linux開了2個Vi來編輯文本,那么一般來說這兩個Vi是共享一個代碼段的,但是數據段不同(這點有 點類似C++中類的不同對象共享相同成員函數)。數據段是存儲數據用的,還可以分成初始化為非零的數據區,BSS,和堆(Heap)三個區域。初始化非零 數據區域一般存放靜態非零數據和全局的非零數據。BSS是Block Started by Symbol的縮寫,原本是匯編語言中的術語。該區域主要存放未初始化的全局數據和靜態數據。還有就是堆了,這個區域是給動態分配內存是使用的,也就是用 malloc等函數分配的內存就是在這個區域里的。它的地址是向上增長的。最后一個堆棧段(注意,堆棧是Stack,堆是Heap,不是同一個東西),堆 棧可太重要了,這里存放著局部變量和函數參數等數據。例如遞歸算法就是靠棧實現的。棧的地址是向下增長的。具體如下:
========高地址     =======
程序棧             堆棧段
         向下增長
“空洞”           =======
         向上增長

------             數據段
BSS
------
非零數據
=========低地址    =======
=========          =======
代碼               代碼段
=========          =======
需要注意的是,代碼段和數據段之間有明確的分隔,但是數據段和堆棧段之間沒有,而且棧是向下增長,堆是向上增長的,因此理論上來說堆和棧會“增長到一起”,但是操作系統會防止這樣的錯誤發生,所以不用過分擔心。
有了以上理論做鋪墊,下面就說動態內存的分配。上面說了,動態內存空間是在堆中分配的。實現動態分配的也就是下面幾個函數:
stdlib.h :
void *malloc(size_t size);
void *calloc(size_t nmemb, size_t size);
void *realloc(void *ptr, size_t size);
void free(void *ptr);
一個一個說吧。malloc就是分配一個size大小的內存空間,并且用一個void類型的指針指向這個空間,然后返回這個指針。也就是說,malloc 返回了一個指向size大小的空間的void類型的指針,如果要使用這個空間,還得把void*類型轉換成一個你需要的類型,比如int*之類。 calloc和malloc基本一樣,不同的是有兩點,一是calloc分配的空間大小是由nmemb*size決定的,也就是說nmemb是條目個數, 而size可以看成是條目的大小,計算總空間任務由calloc去做。二是calloc返回的空間都用0填充,而malloc則不確定內存中會有什么東 西。realloc是用來改變已經分配的空間的大小。指針ptr是void類型的,它應該指向一個需要重新分配大小的空間,而size參數則是重新分配之 后的整個空間大小,而不是增加的大小。同樣,返回的是一個指向新空間的指針。free用來釋放由上面3個函數分配的空間,其參數就是指向某空間的指針。
基本就這些了,這些都是比較基礎的話題,高級話題和細節問題還有很多,這里就不進行說明了,有機會我會繼續總結一番的

Posted on 2008-06-18 16:13 micheal's tech 閱讀(164) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            蜜桃av一区| 亚洲精品日韩精品| 国产精品嫩草99a| 欧美1区2区| 久热精品视频在线观看| 亚洲欧美日韩国产中文在线| 亚洲在线黄色| 欧美在线影院在线视频| 另类专区欧美制服同性| 老司机aⅴ在线精品导航| 麻豆91精品| 欧美日韩高清在线观看| 欧美日韩国产综合在线| 国产欧美日韩一区二区三区在线| 国产一区再线| 99国产精品99久久久久久粉嫩| 亚洲视频在线视频| 久久久久国产成人精品亚洲午夜| 欧美国产精品人人做人人爱| 一区二区不卡在线视频 午夜欧美不卡' | 午夜精品久久久久影视| 久久久精品网| 欧美日韩一区在线播放| 国产一区二区三区直播精品电影| 亚洲经典自拍| 午夜久久黄色| 亚洲欧洲精品一区二区三区不卡 | 欧美xxx成人| 国产精品久久久久久久久久ktv| 国产一区二区三区自拍| 亚洲精品免费一二三区| 欧美怡红院视频一区二区三区| 欧美电影免费观看网站| 亚洲欧美另类在线观看| 欧美精品1区| 激情六月婷婷久久| 欧美精品在线免费播放| 国产精品羞羞答答| 日韩午夜在线观看视频| 噜噜噜91成人网| 一本一本久久a久久精品综合妖精| 久久久久久9999| 国产精品自拍网站| 亚洲图片你懂的| 91久久精品国产91久久性色tv| 欧美一区二区三区久久精品| 欧美日韩理论| 亚洲经典在线看| 免费欧美在线视频| 久久九九免费| 极品中文字幕一区| 久久婷婷综合激情| 欧美中文字幕第一页| 国产精品亚洲аv天堂网| 亚洲综合色在线| 一区二区三区精品久久久| 欧美巨乳在线观看| 夜夜嗨av一区二区三区四区| 亚洲大胆人体视频| 每日更新成人在线视频| 激情文学综合丁香| 免费观看成人网| 每日更新成人在线视频| 亚洲人成网站在线播| 亚洲国内自拍| 欧美日韩精品一区二区在线播放 | 久久久夜色精品亚洲| 欧美一区二区精品久久911| 国产偷久久久精品专区| 久久久久久夜精品精品免费| 久久久91精品国产| 亚洲高清毛片| 亚洲精品免费在线观看| 国产精品第三页| 久久激情视频久久| 欧美中文在线观看| 最新日韩在线| 日韩手机在线导航| 国产精品一区二区三区观看 | 久久久之久亚州精品露出| 久久久久久久综合狠狠综合| 亚洲二区在线视频| 亚洲美女视频在线观看| 国产精品美女www爽爽爽| 欧美专区日韩专区| 毛片一区二区三区| 亚洲永久免费| 久久精品国产一区二区三区| 亚洲欧洲一区二区在线观看| 亚洲天堂av电影| 一区免费在线| 99精品福利视频| 黑人巨大精品欧美一区二区| 久久精品人人做人人爽| 久久国产毛片| 欧美极品欧美精品欧美视频| 亚洲大胆人体视频| 欧美国产欧美综合| 免费在线成人| 日韩视频一区二区三区在线播放| 亚洲视屏一区| 亚洲国产精品va在线看黑人动漫 | 久久aⅴ国产紧身牛仔裤| 亚洲国产精品99久久久久久久久| 亚洲精品专区| 一区二区三区在线免费播放| 日韩一级片网址| 亚洲国产一成人久久精品| 欧美激情视频在线播放 | 国产精品久久久久久久app | 午夜精品三级视频福利| 日韩视频在线一区二区| 久久精品国产2020观看福利| 99天天综合性| 久久夜色精品| 久久久久久久一区二区三区| 欧美先锋影音| 亚洲日本欧美日韩高观看| 一区免费在线| 亚洲欧美在线视频观看| 亚洲一区日韩在线| 欧美片第一页| 亚洲日本一区二区三区| 91久久久亚洲精品| 噜噜噜久久亚洲精品国产品小说| 久久久精品日韩| 国产精品亚洲片夜色在线| 亚洲精品日韩激情在线电影| 亚洲精品一品区二品区三品区| 欧美一区二区在线免费播放| 亚洲欧美日韩成人高清在线一区| 欧美日韩亚洲一区三区| 亚洲日本免费| 9人人澡人人爽人人精品| 欧美激情久久久久| 亚洲精品国产日韩| 一二三区精品| 欧美日韩在线视频观看| 99国产精品久久久久久久| 日韩性生活视频| 欧美日韩亚洲一区二区| 国产精品99久久久久久久vr | 久久只有精品| 欧美aa在线视频| 亚洲二区视频在线| 欧美黄色影院| 亚洲免费福利视频| 亚洲综合另类| 国产一区二区三区精品久久久| 欧美在线资源| 亚洲福利一区| 亚洲五月婷婷| 午夜精品久久久久| 久久精品天堂| 亚洲福利久久| 欧美日韩大片| 亚洲一区视频| 蜜臀a∨国产成人精品| 最新国产拍偷乱拍精品| 欧美日韩一区成人| 午夜日韩在线| 欧美激情久久久久久| 亚洲午夜小视频| 国产一区二区成人| 欧美国产另类| 亚洲欧美在线观看| 91久久亚洲| 久久国产欧美精品| 亚洲激情网站| 国产精品网站在线| 狂野欧美激情性xxxx欧美| 一本色道久久综合亚洲91| 久久久999精品免费| 亚洲区一区二| 国产欧美日韩伦理| 欧美激情综合色综合啪啪| 亚洲女人小视频在线观看| 欧美激情视频在线播放 | 亚洲激情在线播放| 国产欧美二区| 欧美劲爆第一页| 欧美在线网址| 亚洲午夜久久久久久久久电影网| 美日韩精品免费| 性8sex亚洲区入口| 99精品国产在热久久| 韩日欧美一区二区| 国产精品女人久久久久久| 欧美高清在线视频| 久久久精彩视频| 亚洲在线成人精品| 99精品视频免费观看视频| 欧美肥婆在线| 久久久久99| 欧美在线日韩| 午夜久久黄色| 亚洲一区二三| 亚洲香蕉网站| 国产精品99久久久久久久久| 亚洲高清影视|