亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

進程環境之存儲器分配

2024-06-28 13:28:38
字體:
來源:轉載
供稿:網友
進程環境之存儲器分配

ISO C說明了三個用于存儲器空間動態分配的函數:

(1)malloc。分配指定字節數的存儲區。此存儲區中的初始值不確定。

(2)calloc。為指定數量具有指定長度的對象分配存儲空間。該空間中的每一位都初始化為0。

(3)realloc。更改以前分配區的長度(增加或減少)。當增加長度時,可能需要將以前分配區的內容移到另一個足夠大的區域,以便在尾端提供增加的存儲區(此時,返回新分配區的指針,否則返回原來的指針值),而新增區域內的初始值則不確定。

#include <stdlib.h>void *malloc( size_t size );void *calloc( size_t nobj, size_t size );void *realloc( void *ptr, size_t newsize );三個函數返回值:若成功則返回非空指針,若出錯則返回NULLvoid free( void *ptr );

這三個分配函數所返回的指針一定是適當對齊的,使其可用于任何數據對象。

因為這三個alloc函數都返回通用指針void *,所以如果在程序中包括了#include <stdlib.h>(以獲得函數原型),那么當我們將這些函數返回的指針賦予一個不同類型的指針時,就不需要顯式地執行類型強制轉換。

函數free釋放ptr指向的存儲空間。被釋放的空間通常被送入可用存儲區池,以后,可在調用上述三個分配函數時再分配。

realloc函數使我們可以增、減以前分配區的長度(最常見的用法是增加該區)。增加該區時,如果在該存儲區后有足夠的空間可供擴充,則可在原存儲區位置上向高地址方向擴充,無需移動任何原先的內容,并返回傳送給它的同樣的指針值。如果在原存儲區后沒有足夠的空間,則realloc分配另一個足夠大的存儲區,將原存儲區中的內容復制到新分配的存儲區。然后,釋放原存儲區,返回新分配區的指針。因為這種存儲區可能會移動位置,所以不應當使任何指針指到該區中。

注意,realloc的最后一個參數是存儲區的newsize(新長度),它不是新、舊存儲區長度之差。作為一個特例,若ptr是一個空指針,則realloc的功能與malloc相同,用于分配一個指定長度為newsize的存儲區。

這些分配例程通常用sbrk(2)系統調用實現。該系統調用擴充(或縮?。┻M程的堆。

雖然sbrk可以擴充或縮小進程的存儲空間,但是大多數malloc和free的實現都不減少進程的存儲空間。釋放的空間可供以后再分配,但通常將它們保持在malloc池中而不返回給內核。

應當注意的是,大多數實現所分配的存儲空間比所要求的要稍大一些,額外的空間用來記錄管理信息——分配塊的長度、指向下一個分配塊的指針等等。這就意味著如果超過一個已分配區的尾端進行寫操作,則會重寫后一個塊的管理記錄。這種類型的錯誤時災難性的,但是因為這種錯誤不會很快暴露出來,所以也就很難發現。同樣,在已分配區起始位置之前進行寫操作會重寫本塊的管理記錄。

在動態分配的緩沖區前或后進行寫操作,破壞的可能不僅僅是該區的管理記錄信息。在動態分配的緩沖區前后的存儲區很可能用于其他動態分配的對象。這些對象與破壞它們的代碼可能無關,這造成尋求信息破壞的源頭更加困難。

其他可能產生的致命性錯誤是:釋放一個已經釋放了的塊;調用free時所用的指針不是三個alloc函數的返回值等。如若一個進程調用malloc函數,但卻忘記調用free函數,那么該進程占用的存儲器就會連續增加,這被稱為泄漏(leakage)。不調用free函數以釋放不再使用的空間,那么進程地址空間長度就會慢慢增加,直至不再有空閑空間。此時,由于過度的分頁開銷,因而使性能下降。

因為存儲器分配出錯很難跟蹤,所以某些系統提供了這些函數的另一種實現版本。每次調用這三個分配函數中的任意一個或free時,它們都進行附加的檢錯。在調用連接編輯器時指定一個專用庫,則在程序中就可使用這種版本的函數。此外還有公共可用的資源,在對其進行編譯時使用一個特殊標志就會使附加的運行時檢查生效。

本篇博文內容摘自《UNIX環境高級編程》(第二版),僅作個人學習記錄所用。關于本書可參考:http://www.apuebook.com/。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品国产视频| 久久久久久亚洲精品| 色久欧美在线视频观看| 国产成人免费91av在线| 中文字幕成人在线| 98精品国产自产在线观看| 国产精品久久久久久久久久新婚| 欧美电影免费观看电视剧大全| 一区二区国产精品视频| 国产精品一区二区久久久久| 亚洲精品电影在线| 久久久久国产精品免费| 午夜免费在线观看精品视频| 国产精品香蕉在线观看| 国产亚洲免费的视频看| 国产精品久久久久一区二区| 成人精品一区二区三区电影黑人| 日韩高清中文字幕| 亚洲无av在线中文字幕| 国产福利成人在线| 国产精品av免费在线观看| 日本久久久久亚洲中字幕| 欧美高清视频一区二区| 欧美乱大交xxxxx另类电影| 亚洲大胆人体在线| 久久国产精品电影| 久久久久久久一| 久久久久久亚洲精品不卡| 91国产精品视频在线| 欧美成人精品不卡视频在线观看| 久久久精品国产亚洲| 奇米成人av国产一区二区三区| 亚洲色在线视频| 欧美国产中文字幕| 日韩女优人人人人射在线视频| 欧美精品手机在线| 精品视频偷偷看在线观看| 亚洲美女中文字幕| 欧美在线中文字幕| 蜜臀久久99精品久久久无需会员| 国产成人综合精品在线| 欧美极品少妇xxxxx| 久久视频免费在线播放| 日本精品久久电影| 成人h片在线播放免费网站| 亚洲乱码国产乱码精品精| 国产成人精品综合久久久| 黄色一区二区在线观看| 日韩av最新在线观看| 九九久久久久久久久激情| 成人高h视频在线| 精品国产鲁一鲁一区二区张丽| 91国在线精品国内播放| 国产一区二区丝袜高跟鞋图片| 久久99青青精品免费观看| 精品香蕉一区二区三区| 高跟丝袜欧美一区| 日韩大片在线观看视频| 日韩av手机在线观看| 色狠狠av一区二区三区香蕉蜜桃| 国产精品看片资源| 九九热这里只有精品6| 国产精品va在线| 综合av色偷偷网| 日韩精品免费看| 久久久久久亚洲精品| 日韩网站在线观看| 国产精品久久久久久久av大片| 在线视频日韩精品| 亚洲精品狠狠操| 欧洲亚洲女同hd| 欧美电影在线播放| 国产亚洲一区二区在线| 日本a级片电影一区二区| 91成人在线视频| 伊人精品在线观看| 精品在线小视频| 欧美日韩国产中文精品字幕自在自线| 一本久久综合亚洲鲁鲁| 亚洲成人国产精品| 亚洲第一国产精品| 亚洲欧美国产精品va在线观看| 97在线视频免费播放| 国产免费一区二区三区在线观看| 久久久久国产精品免费网站| 欧美性生交xxxxx久久久| 91网站免费观看| 久久久久久97| 亚洲香蕉伊综合在人在线视看| 日韩av在线最新| 亚洲色图日韩av| 中文在线不卡视频| 在线国产精品播放| 疯狂蹂躏欧美一区二区精品| 欧美亚洲日本黄色| 亚洲成色777777女色窝| 色婷婷av一区二区三区久久| 久久人人爽人人爽人人片av高清| 亚洲精品乱码久久久久久按摩观| 久久久久久成人精品| 欧美激情亚洲视频| 国产精品亚洲精品| 成人网在线免费观看| 在线视频欧美日韩| 亚洲精品综合精品自拍| 中文字幕日韩欧美| 欧美激情精品久久久久久久变态| 欧美日韩一区二区三区在线免费观看| 国精产品一区一区三区有限在线| 久久久久久欧美| 亚洲午夜小视频| 欧美激情手机在线视频| 欧美性69xxxx肥| 久久久噜噜噜久久久| 亚洲视频在线播放| 国产精品福利网| 伊人伊成久久人综合网站| 中文字幕久精品免费视频| 日韩欧美一区二区在线| 日本久久久久久久久久久| 亚洲精品国偷自产在线99热| 国产精品久久久久久久午夜| 久久久人成影片一区二区三区| 色无极影院亚洲| 国产亚洲精品91在线| 日韩美女写真福利在线观看| 日韩国产精品一区| 亚洲天堂男人的天堂| 欧美日韩一区二区在线播放| 国产成人avxxxxx在线看| 国产日韩精品视频| 国产精品白嫩初高中害羞小美女| 精品国产91久久久| 精品视频在线观看日韩| 国产精品久久久久久久久久免费| 国产精品第三页| 欧美亚洲免费电影| 久久久久国产一区二区三区| 国产精品极品尤物在线观看| 热re91久久精品国99热蜜臀| 91嫩草在线视频| 国产日韩精品电影| 国产成人精品久久二区二区91| 自拍偷拍亚洲一区| 国产成人精品视| 亚洲欧洲午夜一线一品| 91精品久久久久久久久久久久久久| 日韩美女av在线免费观看| 国产视频在线一区二区| 国产成人久久久| 日韩一级裸体免费视频| 国产精品私拍pans大尺度在线| 91av视频在线免费观看| 日本视频久久久| 亚洲欧美日韩在线一区| 国产精品白嫩初高中害羞小美女| 一区三区二区视频| 最近中文字幕日韩精品| 国产精品女视频| 亚洲精品久久久一区二区三区| 日韩精品免费一线在线观看| 色老头一区二区三区在线观看| 久久精品视频导航| 91极品视频在线|