国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C > 正文

詳解C語(yǔ)言中free()函數(shù)與getpagesize()函數(shù)的使用

2020-01-26 14:57:04
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

C語(yǔ)言free()函數(shù):釋放動(dòng)態(tài)分配的內(nèi)存空間
頭文件:

#include <stdlib.h>

free() 函數(shù)用來(lái)釋放動(dòng)態(tài)分配的內(nèi)存空間,其原型為:

 void free (void* ptr);

free() 可以釋放由 malloc()、calloc()、realloc() 分配的內(nèi)存空間,以便其他程序再次使用。

【參數(shù)說(shuō)明】ptr 為將要釋放的內(nèi)存空間的地址。

free() 只能釋放動(dòng)態(tài)分配的內(nèi)存空間,并不能釋放任意的內(nèi)存。下面的寫法是錯(cuò)誤的:

int a[10];// ...free(a);

如果 ptr 所指向的內(nèi)存空間不是由上面的三個(gè)函數(shù)所分配的,或者已被釋放,那么調(diào)用 free() 會(huì)有無(wú)法預(yù)知的情況發(fā)生。

如果 ptr 為 NULL,那么 free() 不會(huì)有任何作用。

注意:free() 不會(huì)改變 ptr 變量本身的值,調(diào)用 free() 后它仍然會(huì)指向相同的內(nèi)存空間,但是此時(shí)該內(nèi)存已無(wú)效,不能被使用。所以建議將 ptr 的值設(shè)置為 NULL,例如:

free(ptr);ptr = NULL;

代碼示例:

#include <stdlib.h>int main (){ int * buffer1, * buffer2, * buffer3; buffer1 = (int*) malloc (100*sizeof(int)); buffer2 = (int*) calloc (100,sizeof(int)); buffer3 = (int*) realloc (buffer2,500*sizeof(int)); free (buffer1); free (buffer3); system("pause"); return 0;}

C語(yǔ)言getpagesize()函數(shù):取得內(nèi)存分頁(yè)大小
頭文件:

#include <unistd.h>

定義函數(shù):

size_t getpagesize(void);

函數(shù)說(shuō)明:返回一分頁(yè)的大小,單位為字節(jié)(byte)。此為系統(tǒng)的分頁(yè)大小,不一定會(huì)和硬件分頁(yè)大小相同。

返回值:內(nèi)存分頁(yè)大小。

附加說(shuō)明:在 Intel x86 上其返回值應(yīng)為4096bytes。

范例

#include <unistd.h>main(){ printf("page size = %d/n", getpagesize());}

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 涿州市| 会泽县| 遂昌县| 卓资县| 昌都县| 阳朔县| 木兰县| 钟祥市| 汝阳县| 扶余县| 藁城市| 定陶县| 鄂伦春自治旗| 南郑县| 富民县| 牡丹江市| 斗六市| 灌南县| 蓬莱市| 阜康市| 闻喜县| 运城市| 浪卡子县| 邯郸县| 柏乡县| 青河县| 庆阳市| 筠连县| 新郑市| 武威市| 高要市| 永清县| 潼关县| 泌阳县| 巨鹿县| 汾阳市| 合水县| 乃东县| 福泉市| 沙坪坝区| 台江县|