mallopt

mallopt是控制記憶體分配的函式。

基本介紹

簡介,實例,

簡介

int mallopt(int param,int value)//控制記憶體分配的函式。

實例

param 的取值可以為M_CHECK_ACTION、M_MMAP_MAX、M_MMAP_THRESHOLD、M_MXFAST(從glibc2.3起)、M_PERTURB(從glibc2.4起)、M_TOP_PAD、M_TRIM_THRESHOLD。
此處解釋param取值為M_MXFAST的情況;
value是以位元組為單位的。
int mallopt(int param,int value) param的取值分別為M_MXFAST,value是以位元組為單位。
M_MXFAST:定義使用fastbins的記憶體請求大小的上限,小於該閾值的小塊記憶體請求將不會使用fastbins獲得記憶體,其預設值為64。下面我們來將M_MXFAST設定為0,禁止使用fastbins,利用mallinfo查看fastbins中空閒的記憶體大小。
#include<stdlib.h>#include<stdio.h>#include<malloc.h>intmain(){//mallopt(M_MXFAST,0);char*p=malloc(20);char*p1=malloc(10);char*p2=malloc(20);printf("%p%p%p\n",p,p1,p2);free(p);free(p1);char*p3=malloc(20);printf("%p\n",p3);struct mallinfo info=mallinfo();printf("fastbin 持有%d bytes\n",info.fsmblks);return0;}運行結果:#./hello0x110500x110600x110700x11050fastbin 持有64 bytes

相關詞條

熱門詞條

聯絡我們