¤³¤Î¾Ï¤ÎÌܼ¡¤Ë¤â¤É¤ë
Á°ÊÇ:1.4 ¥°¥í¡¼¥Ð¥ë̾´ÉÍý¤Ë¤â¤É¤ë
¼¡ÊÇ:1.6 ¥Õ¥¡¥¤¥ë´ÉÍý¤Ë¤¹¤¹¤à
¥Ç¡¼¥¿¥á¥â¥êÎΰè¤Ë¤Ï°Ê²¼¤Ë¼¨¤¹ 3 ¼ïÎब¤¢¤ê¡¢ ¤½¤ì¤¾¤ì¤ÎÎΰè¤ËÂФ·¤Æ»ØÄꤷ¤¿Â礤µ¤Î¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Î³ÍÆÀ / ²òÊüÅù¤Îµ¡Ç½¤òÄ󶡤·¤Æ¤¤¤ë¡£
1 ¤Ä¤Î¥×¥í¥»¥¹Æâ¤Ç¤Î¤ß»ÈÍѲÄǽ¤Ê¥á¥â¥êÎΰè¤Ç¤¢¤ê¡¢ ¾¤Î¥×¥í¥»¥¹¤«¤é¤Ï¥¢¥¯¥»¥¹¤Ç¤¤Ê¤¤¡£
¥í¡¼¥«¥ë¥á¥â¥ê¤È¤·¤Æ³ÎÊݤ·¤¿Îΰè¤Ï¡¢ ¥×¥í¥»¥¹½ªÎ»»þ¤Ë¼«Æ°Åª¤Ë²òÊü¤µ¤ì¤ë¡£
¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤«¤é»ÈÍѲÄǽ¤Ê¥á¥â¥êÎΰè¤Ç¤¢¤ë¡£
³ÍÆÀ¤·¤¿¥×¥í¥»¥¹¤Î¸ºß¤È¤Ï̵´Ø·¸¤Ë¸ºß¤¹¤ë¤¬¡¢ ³ÍÆÀ¤·¤¿¥×¥í¥»¥¹¤Î½ªÎ»»þ¤Ë¼«Æ°Åª¤Ë²òÊü¤¹¤ë¤³¤È¤â¤Ç¤¤ë¡£
¥·¥¹¥Æ¥à ( OS ¤ä¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¡¼Åù ) ¤«¤é¤Î¤ß»ÈÍѲÄǽ¤Ê¥á¥â¥êÎΰè¤Ç¤¢¤ë¡£ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥»¥¹¤«¤é¤Ï»ÈÍѤǤ¤Ê¤¤¡£
¥×¥í¥»¥¹¤È¤Ï̵´Ø·¸¤Ë¸ºß¤¹¤ë¡£
´ðËÜŪ¤Ë¤Ï¥Ö¥í¥Ã¥¯Ã±°Ì ( Î㤨¤Ð 4KB ñ°Ì ) ¤Ç¥á¥â¥ê¤ò³ä¤êÅö¤Æ¤ëµ¡Ç½¤Î¤ß¤ò OS ¤ÏÄ󶡤¹¤ë¡£ ¤µ¤é¤ËºÙ¤«¤¯ÆâÉô¤òʬ³ä¤¹¤ë¤Î¤Ï¥é¥¤¥Ö¥é¥ê¡¢ ¤Þ¤¿¤Ï¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¼«¿È¤Ç¹Ô¤¦¡£ Ä̾ï¤Ï¡¢¥·¥¹¥Æ¥à¥³¡¼¥ë¤òľÀÜ»ÈÍѤ»¤º¤Ë¥é¥¤¥Ö¥é¥ê¤òÍøÍѤ¹¤ë¡£ ¥é¥¤¥Ö¥é¥ê¤Îµ¡Ç½¤Ç¤ÏÉÔ½½Ê¬¤Ê¾ì¹ç¤Î¤ß¥·¥¹¥Æ¥à¥³¡¼¥ë¤òľÀÜÍøÍѤ¹¤ë¡£
³ÍÆÀ¤·¤¿¥á¥â¥ê¥Ö¥í¥Ã¥¯¤ÏϢ³¤·¤¿ ( ÏÀÍý ) ¥¢¥É¥ì¥¹¤ò»ý¤Á¡¢ ¤½¤ÎÀèÆ¬ ( ÏÀÍý ) ¥¢¥É¥ì¥¹¤¬¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ËÌᤵ¤ì¤ë¡£ °ìÅÙ³ÍÆÀ¤·¤¿¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Î ( ÏÀÍý ) ¥¢¥É¥ì¥¹¤ÏÊѹ¹¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¤¿¤á¡¢ ÆÀ¤é¤ì¤¿¥¢¥É¥ì¥¹¤Ë¤è¤êľÀÜ¥á¥â¥ê¥Ö¥í¥Ã¥¯¤ò¥¢¥¯¥»¥¹¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£ ³ÍÆÀ¤·¤¿¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Ø¤Î¥Ç¡¼¥¿¤Î½ñ¹þ¤ß / ÆÉ¹þ¤ß¤Ï¼«Í³¤Ë¤Ç¤¤ë¤¬¡¢ ¸¶Â§¤È¤·¤Æ¼Â¹Ô¤¹¤ë¤³¤È¤Ï¤Ç¤¤Ê¤¤¡£
¥á¥â¥ê´ÉÍýµ¡Ç½¤Î¤¢¤ë CPU ¤Î¾ì¹ç¤Ë¤Ï¡¢ ¸¶Â§¤È¤·¤Æ¡¢¶¦Í¥á¥â¥ê¡¢¥·¥¹¥Æ¥à¥á¥â¥ê¤ÏÉé¤Î¥¢¥É¥ì¥¹¤È¤Ê¤ê¡¢ ¥í¡¼¥«¥ë¥á¥â¥ê¤ÏÀµ¤Î¥¢¥É¥ì¥¹¤È¤Ê¤ë¡£ CPU ¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¤Ï¤³¤Î¸¶Â§Ä̤ê¤Ë¤Ê¤é¤Ê¤¤¾ì¹ç¤¬¤¢¤ë¡£ ¤Þ¤¿¡¢¥á¥â¥ê´ÉÍýµ¡Ç½¤Î¤Ê¤¤ CPU ¤Î¾ì¹ç¤Ï¡¢¤³¤Î¸Â¤ê¤Ç¤Ï¤Ê¤¤¡£
¥á¥â¥ê¤ËÂФ¹¤ëÇÓ¾¥¢¥¯¥»¥¹À©¸æ¤Îµ¡Ç½¤Ï¤Ê¤¤¤Î¤Ç¡¢ ɬÍפǤ¢¤ì¤Ð¥»¥Þ¥Õ¥©¤Ê¤É¤òÍøÍѤ·¤Æ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ç¹Ô¤¦¡£
#define M_COMMON 0x00000001 /* ¶¦Í */ #define M_SYSTEM 0x00000003 /* ¥·¥¹¥Æ¥à¤Î¤ß */ #define M_RESIDENT 0x00004000 /* ¾ïÃó */
typedef struct m_state {
W blksz; /* ¥Ö¥í¥Ã¥¯¥µ¥¤¥º */
W total; /* Á´¥Ö¥í¥Ã¥¯¿ô */
W free; /* »Ä¤ê¥Ö¥í¥Ã¥¯¿ô */
} M_STATE;
|
ERR get_mbk( VP *adr, W nblk, UW atr )
VP *adr ³ÍÆÀ¤·¤¿¥á¥â¥ê¥Ö¥í¥Ã¥¯¤ÎÀèÆ¬¥¢¥É¥ì¥¹¤òÊÖ¤¹Îΰè W nblk ³ÍÆÀ¤¹¤ë¥á¥â¥ê¥Ö¥í¥Ã¥¯¿ô( > 0) UW atr ¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Î°À [ (M_COMMON ¡Â M_SYSTEM) ] | [M_RESIDENT] | [DELEXIT]
M_COMMON :¶¦Í¥á¥â¥ê¤ò»ØÄꤹ¤ë¡£
¶¦Í¥á¥â¥ê¤Ï¡¢¤¹¤Ù¤Æ¤Î¥×¥í¥»¥¹¤«¤é¥¢¥¯¥»¥¹²Äǽ¡£
M_SYSTEM¥·¥¹¥Æ¥à¥á¥â¥ê¤ò»ØÄꤹ¤ë¡£
¥·¥¹¥Æ¥à¥á¥â¥ê¤Ï¡¢¥·¥¹¥Æ¥à ( OS ¤ä¥Ç¥Ð¥¤¥¹¥É¥é¥¤¥Ð¡¼Åù ) ¤«¤é¤Î¤ß¥¢¥¯¥»¥¹²Äǽ¡£ ¤³¤Î»ØÄê¤Ï¡¢¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥»¥¹¤«¤é¤Ï»ÈÍѤ·¤Æ¤Ï¤¤¤±¤Ê¤¤¡£
M_COMMON, M_SYSTEM ¤Î¤¤¤º¤ì¤Î»ØÄê¤â¤Ê¤±¤ì¤Ð¡¢ ¥í¡¼¥«¥ë¥á¥â¥ê¤È¤Ê¤ë¡£
¥í¡¼¥«¥ë¥á¥â¥ê¤Ï¡¢¥á¥â¥ê¥Ö¥í¥Ã¥¯¤ò³ÍÆÀ¤·¤¿¥×¥í¥»¥¹¤«¤é¤Î¤ß¥¢¥¯¥»¥¹²Äǽ¡£
¢¨ ¶¦Í / ¥·¥¹¥Æ¥à / ¥í¡¼¥«¥ë¥á¥â¥ê¤Î»ØÄê¤Ï¡¢ ¥á¥â¥ê´ÉÍýµ¡Ç½¤¬¤Ê¤¤ CPU ¤Î¾ì¹ç¤Ë¤ÏÆÃ¤Ë°ÕÌ£¤ò»ý¤¿¤Ê¤¤¡£ ¤¤¤º¤ì¤âƱ¤¸°·¤¤¤È¤Ê¤Ã¤Æ¤·¤Þ¤¤¡¢Êݸ¤ì¤Ê¤¤¡£
M_RESIDENT :¾ïÃó¤ò»ØÄꤹ¤ë¡£»ØÄ꤬¤Ê¤±¤ì¤ÐÈó¾ïÃó¤È¤Ê¤ë¡£
¾ïÃó»ØÄꤵ¤ì¤¿¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Ï¡¢ ¥Ç¥£¥¹¥¯¤Ê¤É¤Ë¥¹¥ï¥Ã¥×¥¢¥¦¥È¤µ¤ì¤ë¤³¤È¤Ê¤¯¾ï¤Ë¼ç¥á¥â¥ê¾å¤Ë¸ºß¤¹¤ë¡£
¢¨ ²¾ÁÛµ²±¤ò¹Ô¤Ã¤Æ¤¤¤Ê¤¤¥·¥¹¥Æ¥à¤Î¾ì¹ç¤Ë¤Ï¡¢ ÆÃ¤Ë°ÕÌ£¤ò»ý¤¿¤Ê¤¤(¾ïÃó¤ÈƱÅù¤Ë¤Ê¤ë)¡£
DELEXIT :¥×¥í¥»¥¹½ªÎ»»þºï½ü¤ò»ØÄꤹ¤ë¡£
¤³¤Î»ØÄ꤬¤¢¤ë¤È¡¢ ¥á¥â¥ê¥Ö¥í¥Ã¥¯¤ò³ÍÆÀ¤·¤¿¥×¥í¥»¥¹¤¬½ªÎ»¤¹¤ë¤È¼«Æ°Åª¤Ë¥á¥â¥ê¥Ö¥í¥Ã¥¯¤¬²òÊü¤µ¤ì¤ë¡£ ¤¿¤À¤·¡¢¥í¡¼¥«¥ë¥á¥â¥ê¤Î¾ì¹ç¤Ï¡¢¤³¤Î»ØÄê¤ÎÍ̵¤Ë´Ø·¸¤Ê¤¯¡¢ ¥×¥í¥»¥¹¤Î½ªÎ»»þ¤Ë²òÊü¤µ¤ì¤ë¡£
¡á0 Àµ¾ï ¡ã0 ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)
nblk ¸Ä¤ÎϢ³¤·¤¿¥á¥â¥ê¥Ö¥í¥Ã¥¯¤ò³ÍÆÀ¤·¡¢ ¤½¤ÎÀèÆ¬¥¢¥É¥ì¥¹¤ò *adr
¤ËÊÖ¤¹¡£
er_adr : ¥¢¥É¥ì¥¹(adr)¤Î¥¢¥¯¥»¥¹¤Ïµö¤µ¤ì¤Æ¤¤¤Ê¤¤¡£ er_nomem : ¥á¥â¥êÎΰ褬ÉÔ¤·¤¿¡£ er_nospc : ¥·¥¹¥Æ¥à¤Î¥á¥â¥êÎΰ褬ÉÔ¤·¤¿¡£ er_par : ¥Ñ¥é¥á¡¼¥¿¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ er_ctx : ÉÔÀµ¤Ê¥³¥ó¥Æ¥¥¹¥È¤«¤é¸Æ¤Ó½Ð¤·¤¿¡£
|
ERR rel_mbk( VP adr )
VP adr ²òÊü¤¹¤ë¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Î¥¢¥É¥ì¥¹
¡á0 Àµ¾ï ¡ã 0 ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)
adr ¤Ç¼¨¤¹¥á¥â¥ê¥Ö¥í¥Ã¥¯¤ò²òÊü¤¹¤ë¡£ adr ¤Ï get_mbk()
¤ÇÆÀ¤¿¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
ER_MPTR : ¥á¥â¥ê¥Ö¥í¥Ã¥¯¤Î¥¢¥É¥ì¥¹¤¬ÉÔÀµ¤Ç¤¢¤ë¡£ ER_CTX : ÉÔÀµ¤Ê¥³¥ó¥Æ¥¥¹¥È¤«¤é¸Æ¤Ó½Ð¤·¤¿¡£
|
ERR mbk_sts( M_STATE *sts )
M_STATE sts ¥á¥â¥ê¾õÂÖ¤òÊÖ¤¹Îΰè
typedef struct m_state {
W blksz; /* ¥Ö¥í¥Ã¥¯¥µ¥¤¥º */
W total; /* Á´¥Ö¥í¥Ã¥¯¿ô */
W free; /* »Ä¤ê¥Ö¥í¥Ã¥¯¿ô */
} M_STATE;
¡á0 Àµ¾ï ¡ã0 ¥¨¥é¡¼(¥¨¥é¡¼¥³¡¼¥É)
¸½ºß¤Î¥á¥â¥ê»ÈÍѾõ¶·¤Ê¤É¤ò¼èÆÀ¤¹¤ë¡£
blksz :total :free :²¾ÁÛµ²±¤ò¹Ô¤Ã¤Æ¤¤¤ë¥·¥¹¥Æ¥à¤Ç¤Ï¡¢ Á´¥Ö¥í¥Ã¥¯¿ô¡¢»Ä¤ê¥Ö¥í¥Ã¥¯¿ô¤¬°ì°Õ¤Ë·èÄê¤Ç¤¤Ê¤¤¾ì¹ç¤¬¤¢¤ë¡£
¤·¤¿¤¬¤Ã¤Æ¡¢¶ñÂÎŪ¤Ê°ÕÌ£¤Ï¥¤¥ó¥×¥ê¥á¥ó¥È¤Ë°Í¸¤¹¤ë¡£ ¤¿¤À¤·¡¢free ¡à total
¤¬»Ä¤ê¥á¥â¥ê¤Î³ä¹ç¤Î»²¹ÍÃͤȤʤë¤è¤¦¤ÊÃͤȤ¹¤ë¡£
¥¤¥ó¥×¥ê¥á¥ó¥È¤Ë¤è¤ê¡¢ ¶ñÂÎŪ¤ÊÃͤ¬ÀßÄê¤Ç¤¤Ê¤¤¾ì¹ç¤Ï¡¢ Á´¥Ö¥í¥Ã¥¯¿ô¡¢»Ä¤ê¥Ö¥í¥Ã¥¯¿ô¤È¤â¤Ë
-1 ¤òÀßÄꤹ¤ë¤â¤Î¤È¤¹¤ë¡£
ER_ADR : ¥¢¥É¥ì¥¹(sts)¤Î¥¢¥¯¥»¥¹¤Ïµö¤µ¤ì¤Æ¤¤¤Ê¤¤¡£
|
void* malloc( size_t size )
size_t size ³ÍÆÀ¤·¤¿¤¤¥á¥â¥ê¤Î¥Ð¥¤¥È¿ô(> 0)
¡âNULL Àµ¾ï(³ÍÆÀ¤·¤¿¥á¥â¥ê¥¢¥É¥ì¥¹) ¡áNULL ¥¨¥é¡¼
Èó¾ïÃó¥í¡¼¥«¥ë¥á¥â¥ê¤«¤é»ØÄꤷ¤¿¥µ¥¤¥º¤Î¥á¥â¥ê¤ò³ä¤êÅö¤Æ¡¢¤½¤ÎÀèÆ¬¥¢¥É¥ì¥¹¤òÌ᤹¡£
|
void* calloc( size_t nelem, size_t elsize )
size_t nelem ³ÍÆÀ¤·¤¿¤¤Í×ÁÇ¿ô( > 0) size_t elsize 1Í×ÁǤΥХ¤¥È¿ô( > 0)
¡âNULL Àµ¾ï(³ÍÆÀ¤·¤¿¥á¥â¥ê¥¢¥É¥ì¥¹) ¡áNULL ¥¨¥é¡¼
Èó¾ïÃó¥í¡¼¥«¥ë¥á¥â¥ê¤«¤é elsize ¤ÎÂ礤µ¤Î nelem ¸Ä¤ÎÍ×ÁǤò³ÊǼ¤¹¤ëÎΰè¤ò³ä¤êÅö¤Æ¡¢¤½¤ÎÀèÆ¬¥¢¥É¥ì¥¹¤òÌ᤹¡£
³ä¤êÅö¤Æ¤¿Îΰè¤Ï 0 ¤Ç½é´ü²½¤µ¤ì¤ë¡£
|
void* realloc( void *ptr, size_t size )
void *ptr ¥µ¥¤¥ºÊѹ¹¤·¤¿¤¤Îΰè¤Î¥¢¥É¥ì¥¹ NULL ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¿·µ¬³ÍÆÀ size_t size ³ÍÆÀ¤·¤¿¤¤¥á¥â¥ê¤Î¥Ð¥¤¥È¿ô(¡æ0) 0 ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï²òÊü
¡âNULL Àµ¾ï(³ÍÆÀ¤·¤¿¥á¥â¥ê¥¢¥É¥ì¥¹) ¡áNULL ¥¨¥é¡¼
Èó¾ïÃó¥í¡¼¥«¥ë¥á¥â¥êÃæ¤Î ptr ¤Ç»ØÄꤵ¤ì¤ëÎΰè¤Î¥µ¥¤¥º¤ò size
¤ËÊѹ¹¤·¤ÆºÆ³ÍÆÀ¤·¡¢¤½¤ÎÀèÆ¬¥¢¥É¥ì¥¹¤òÌ᤹¡£
ptr ¤Ï¡¢ malloc(), calloc(), realloc() ¤ÇÊÖ¤µ¤ì¤¿¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
|
void free( void *ptr )
void *ptr ²òÊü¤·¤¿¤¤Îΰè¤Î¥¢¥É¥ì¥¹
ptr ¤Ç»ØÄꤵ¤ì¤¿Èó¾ïÃó¥í¡¼¥«¥ë¥á¥â¥êÆâ¤ÎÎΰè¤ò²òÊü¤¹¤ë¡£
ptr ¤Ï¡¢ malloc(), calloc(), realloc() ¤ÇÊÖ¤µ¤ì¤¿¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
|
void* Smalloc( size_t size )
size_t size ³ÍÆÀ¤·¤¿¤¤¥á¥â¥ê¤Î¥Ð¥¤¥È¿ô(> 0)
¡âNULL Àµ¾ï(³ÍÆÀ¤·¤¿¥á¥â¥ê¥¢¥É¥ì¥¹) ¡áNULL ¥¨¥é¡¼
Èó¾ïÃó¶¦Í¥á¥â¥ê¤«¤é»ØÄꤷ¤¿¥µ¥¤¥º¤Î¥á¥â¥ê¤ò³ä¤êÅö¤Æ¡¢¤½¤ÎÀèÆ¬¥¢¥É¥ì¥¹¤òÌ᤹¡£
|
void* Scalloc( size_t nelem, size_t elsize )
size_t nelem ³ÍÆÀ¤·¤¿¤¤Í×ÁÇ¿ô(> 0) size_t elsize 1 Í×ÁǤΥХ¤¥È¿ô(> 0)
¡âNULL Àµ¾ï(³ÍÆÀ¤·¤¿¥á¥â¥ê¥¢¥É¥ì¥¹) ¡áNULL ¥¨¥é¡¼
Èó¾ïÃó¶¦Í¥á¥â¥ê¤«¤é elsize ¤ÎÂ礤µ¤Î nelem ¸Ä¤ÎÍ×ÁǤò³ÊǼ¤¹¤ëÎΰè¤ò³ä¤êÅö¤Æ¡¢¤½¤ÎÀèÆ¬¥¢¥É¥ì¥¹¤òÌ᤹¡£
³ä¤êÅö¤Æ¤¿Îΰè¤Ï 0 ¤Ç½é´ü²½¤µ¤ì¤ë¡£
|
void* Srealloc( void *ptr, size_t size )
void *ptr ¥µ¥¤¥ºÊѹ¹¤·¤¿¤¤Îΰè¤Î¥¢¥É¥ì¥¹ NULL ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¿·µ¬³ÍÆÀ size_t size ºÆ³ÍÆÀ¤·¤¿¤¤¥á¥â¥ê¤Î¥Ð¥¤¥È¿ô(¡æ0) 0 ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï²òÊü
¡âNULL Àµ¾ï(³ÍÆÀ¤·¤¿¥á¥â¥ê¥¢¥É¥ì¥¹) ¡áNULL ¥¨¥é¡¼
Èó¾ïÃó¶¦Í¥á¥â¥êÃæ¤Î ptr ¤Ç»ØÄꤵ¤ì¤ëÎΰè¤Î¥µ¥¤¥º¤ò size
¤ËÊѹ¹¤·¤ÆºÆ³ÍÆÀ¤·¡¢¤½¤ÎÀèÆ¬¥¢¥É¥ì¥¹¤òÌ᤹¡£
ptr ¤Ï¡¢Æ±¤¸¥×¥í¥»¥¹Æâ¤Ç³ÍÆÀ¤·¤¿¥á¥â¥êÎΰè¤Ç¡¢ Smalloc(), Scalloc(),
Srealloc() ¤ÇÊÖ¤µ¤ì¤¿¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
|
void Sfree( void *ptr )
void *ptr ²òÊü¤·¤¿¤¤Îΰè¤Î¥¢¥É¥ì¥¹
ptr ¤Ç»ØÄꤵ¤ì¤¿Èó¾ïÃó¶¦Í¥á¥â¥êÆâ¤ÎÎΰè¤ò²òÊü¤¹¤ë¡£
ptr ¤Ï¡¢Æ±¤¸¥×¥í¥»¥¹Æâ¤Ç³ÍÆÀ¤·¤¿¥á¥â¥êÎΰè¤Ç¡¢ Smalloc(), Scalloc(),
Srealloc() ¤ÇÊÖ¤µ¤ì¤¿¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
|
void* Kmalloc( size_t size )
size_t size ³ÍÆÀ¤·¤¿¤¤¥á¥â¥ê¤Î¥Ð¥¤¥È¿ô(> 0)
¡âNULL Àµ¾ï(³ÍÆÀ¤·¤¿¥á¥â¥ê¥¢¥É¥ì¥¹) ¡áNULL ¥¨¥é¡¼
¾ïÃó¥·¥¹¥Æ¥à¥á¥â¥ê¤«¤é»ØÄꤷ¤¿¥µ¥¤¥º¤Î¥á¥â¥ê¤ò³ä¤êÅö¤Æ¡¢¤½¤ÎÀèÆ¬¥¢¥É¥ì¥¹¤òÌ᤹¡£
¢¨ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥»¥¹¤«¤é¤Ï»ÈÍѤǤ¤Ê¤¤¡£
|
void* Kcalloc( size_t nelem, size_t elsize )
size_t nelem ³ÍÆÀ¤·¤¿¤¤Í×ÁÇ¿ô(> 0) size_t elsize 1 Í×ÁǤΥХ¤¥È¿ô(> 0)
¡âNULL Àµ¾ï(³ÍÆÀ¤·¤¿¥á¥â¥ê¥¢¥É¥ì¥¹) ¡áNULL ¥¨¥é¡¼
¾ïÃó¥·¥¹¥Æ¥à¥á¥â¥ê¤«¤é elsize ¤ÎÂ礤µ¤Î nelem ¸Ä¤ÎÍ×ÁǤò³ÊǼ¤¹¤ëÎΰè¤ò³ä¤êÅö¤Æ¡¢¤½¤ÎÀèÆ¬¥¢¥É¥ì¥¹¤òÌ᤹¡£
³ä¤êÅö¤Æ¤¿Îΰè¤Ï 0 ¤Ç½é´ü²½¤µ¤ì¤ë¡£
¢¨ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥»¥¹¤«¤é¤Ï»ÈÍѤǤ¤Ê¤¤¡£
|
void* Krealloc( void *ptr, size_t size )
void *ptr ¥µ¥¤¥ºÊѹ¹¤·¤¿¤¤Îΰè¤Î¥¢¥É¥ì¥¹ NULL ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¿·µ¬³ÍÆÀ size_t size ºÆ³ÍÆÀ¤·¤¿¤¤¥á¥â¥ê¤Î¥Ð¥¤¥È¿ô(¡æ0) 0 ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï²òÊü
¡âNULL Àµ¾ï(³ÍÆÀ¤·¤¿¥á¥â¥ê¥¢¥É¥ì¥¹) ¡áNULL ¥¨¥é¡¼
¾ïÃó¥·¥¹¥Æ¥à¥á¥â¥êÃæ¤Î ptr ¤Ç»ØÄꤵ¤ì¤ëÎΰè¤Î¥µ¥¤¥º¤ò size
¤ËÊѹ¹¤·¤ÆºÆ³ÍÆÀ¤·¡¢¤½¤ÎÀèÆ¬¥É¥ì¥¹¤òÌ᤹¡£
ptr ¤Ï¡¢ Kmalloc(), Kcalloc(), Krealloc() ¤ÇÊÖ¤µ¤ì¤¿¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
¢¨ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥»¥¹¤«¤é¤Ï»ÈÍѤǤ¤Ê¤¤¡£
|
void Kfree( void *ptr )
void *ptr ²òÊü¤·¤¿¤¤Îΰè¤Î¥¢¥É¥ì¥¹
ptr ¤Ç»ØÄꤵ¤ì¤¿¾ïÃó¥·¥¹¥Æ¥à¥á¥â¥êÆâ¤ÎÎΰè¤ò²òÊü¤¹¤ë¡£
ptr ¤Ï¡¢Kmalloc(), Kcalloc(), Krealloc() ¤ÇÊÖ¤µ¤ì¤¿¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
¢¨ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥»¥¹¤«¤é¤Ï»ÈÍѤǤ¤Ê¤¤¡£
|
void* Vmalloc( size_t size )
size_t size ³ÍÆÀ¤·¤¿¤¤¥á¥â¥ê¤Î¥Ð¥¤¥È¿ô(> 0)
¡âNULL Àµ¾ï(³ÍÆÀ¤·¤¿¥á¥â¥ê¥¢¥É¥ì¥¹) ¡áNULL ¥¨¥é¡¼
Èó¾ïÃó¥·¥¹¥Æ¥à¥á¥â¥ê¤«¤é»ØÄꤷ¤¿¥µ¥¤¥º¤Î¥á¥â¥ê¤ò³ä¤êÅö¤Æ¡¢¤½¤ÎÀèÆ¬¥¢¥É¥ì¥¹¤òÌ᤹¡£
¢¨ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥»¥¹¤«¤é¤Ï»ÈÍѤǤ¤Ê¤¤¡£
|
void* Vcalloc( size_t nelem, size_t elsize )
size_t nelem ³ÍÆÀ¤·¤¿¤¤Í×ÁÇ¿ô(> 0) size_t elsize 1 Í×ÁǤΥХ¤¥È¿ô(> 0)
¡âNULL Àµ¾ï(³ÍÆÀ¤·¤¿¥á¥â¥ê¥¢¥É¥ì¥¹) ¡áNULL ¥¨¥é¡¼
Èó¾ïÃó¥·¥¹¥Æ¥à¥á¥â¥ê¤«¤é elsize ¤ÎÂ礤µ¤Î nelem ¸Ä¤ÎÍ×ÁǤò³ÊǼ¤¹¤ëÎΰè¤ò³ä¤êÅö¤Æ¡¢¤½¤ÎÀèÆ¬¥¢¥É¥ì¥¹¤òÌ᤹¡£
³ä¤êÅö¤Æ¤¿Îΰè¤Ï 0 ¤Ç½é´ü²½¤µ¤ì¤ë¡£
¢¨ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥»¥¹¤«¤é¤Ï»ÈÍѤǤ¤Ê¤¤¡£
|
void* Vrealloc( void *ptr, size_t size )
void *ptr ¥µ¥¤¥ºÊѹ¹¤·¤¿¤¤Îΰè¤Î¥¢¥É¥ì¥¹ NULL ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¿·µ¬³ÍÆÀ size_t size ºÆ³ÍÆÀ¤·¤¿¤¤¥á¥â¥ê¤Î¥Ð¥¤¥È¿ô(¡æ0) 0 ¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï²òÊü
¡âNULL Àµ¾ï(³ÍÆÀ¤·¤¿¥á¥â¥ê¥¢¥É¥ì¥¹) ¡áNULL ¥¨¥é¡¼
Èó¾ïÃó¥·¥¹¥Æ¥à¥á¥â¥êÃæ¤Î ptr ¤Ç»ØÄꤵ¤ì¤ëÎΰè¤Î¥µ¥¤¥º¤ò size
¤ËÊѹ¹¤·¤ÆºÆ³ÍÆÀ¤·¡¢¤½¤ÎÀèÆ¬¥¢¥É¥ì¥¹¤òÌ᤹¡£
ptr ¤Ï¡¢Vmalloc(), Vcalloc(), Vrealloc() ¤ÇÊÖ¤µ¤ì¤¿¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
¢¨ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥»¥¹¤«¤é¤Ï»ÈÍѤǤ¤Ê¤¤¡£
|
void Vfree( void *ptr )
void *ptr ²òÊü¤·¤¿¤¤Îΰè¤ÎÀèÆ¬¥¢¥É¥ì¥¹
ptr ¤Ç»ØÄꤵ¤ì¤¿Èó¾ïÃó¥·¥¹¥Æ¥à¥á¥â¥êÆâ¤ÎÎΰè¤ò²òÊü¤¹¤ë¡£
ptr ¤Ï¡¢Vmalloc(), Vcalloc(), Vrealloc() ¤ÇÊÖ¤µ¤ì¤¿¥¢¥É¥ì¥¹¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
¢¨ ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¥×¥í¥»¥¹¤«¤é¤Ï»ÈÍѤǤ¤Ê¤¤¡£