alloca

Autres langues

Langue: ja

Version: 2002-07-17 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

̾Á°

alloca - ¥á¥â¥ê¤ò³ä¤êÉÕ¤±¤ë

½ñ¼°

#include <alloca.h>

void *alloca(size_t size);

ÀâÌÀ

alloca() ´Ø¿ô¤Ï¡¢ size ¥Ð¥¤¥È¤ÎÎΰè¤ò¸Æ½Ð¸µ¤Î¥¹¥¿¥Ã¥¯¡¦¥Õ¥ì¡¼¥à¤Ë³ä¤êÉÕ¤±¤ë¡£ ¤³¤Î°ì»þŪ¤ÊÎΰè¤Ï¡¢ alloca() ¤ò¸Æ¤Ó½Ð¤·¤¿´Ø¿ô¤¬¸Æ½Ð¸µ¤ËÊÖ¤ë¤È¤­¤Ë¼«Æ°Åª¤Ë²òÊü¤µ¤ì¤ë¡£

ÊÖ¤êÃÍ

alloca() ´Ø¿ô¤Ï¡¢³ä¤êÉÕ¤±¤¿Îΰè¤Î»Ï¤Þ¤ê¤ò»Ø¤¹¥Ý¥¤¥ó¥¿¤òÊÖ¤¹¡£ ³ä¤êÉÕ¤±¤Ë¤è¤Ã¤Æ¥¹¥¿¥Ã¥¯¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤¬µ¯¤Ã¤¿¾ì¹ç¤Î ¥×¥í¥°¥é¥à¤ÎÆ°ºî¤ÏÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¡£

½àµò

32v, pwb, pwb.2, 3bsd, 4bsd ¤Ë alloca() ´Ø¿ô¤¬Åо줷¤¿¾Úµò¤¬¤¢¤ë¡£ 4.3BSD ¤Ë¤Ï¡¢¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤¬¤¢¤ë¡£ Linux ¤Ï¡¢GNU ÈǤò»È¤Ã¤Æ¤¤¤ë¡£ ¤³¤Î´Ø¿ô¤Ï POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£

Ãí°Õ

GNU ÈǤˤĤ¤¤Æ¤ÎÃí°Õ

Ä̾ï gcc ¤Ï alloca() ¤Î¸Æ¤Ó½Ð¤·¤ò¥¤¥ó¥é¥¤¥ó¥³¡¼¥É¤ËÊÑ´¹¤¹¤ë¡£ -ansi ¥ª¥×¥·¥ç¥ó¤Þ¤¿¤Ï -fno-builtin ¥ª¥×¥·¥ç¥ó¤ò»ØÄꤷ¤¿¾ì¹ç¤Ï¡¢ ¤³¤ÎÁàºî¤Ï¹Ô¤ï¤ì¤Ê¤¤¡£ ¤À¤À¤·¡¢¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï glibc ÈǤΠ<stdlib.h> ¤Ï <alloca.h> ¤ò¥¤¥ó¥¯¥ë¡¼¥É¤·¤Æ¤ª¤ê¡¢¤³¤ì¤Ë¤Ï°Ê²¼¤Î¹Ô¤¬´Þ¤Þ¤ì¤Æ¤¤¤ë¤Î¤ÇÃí°Õ¤¹¤ë¤³¤È¡£



    # define alloca(size)   __builtin_alloca (size)



Æȼ«¤Î __builtin_alloca (size) ´Ø¿ô¤¬¤¢¤ë¤ÈÌñ²ð¤Ê·ë²Ì¤Ë¤Ê¤ë¡£

¤³¤Î¥³¡¼¥É¤Ï¥¤¥ó¥é¥¤¥ó²½¤µ¤ì¤Æ¤¤¤ë¤Î¤Ç¡¢ ¤³¤Î´Ø¿ô¤Î¥¢¥É¥ì¥¹¤ò¼èÆÀ¤·¤¿¤ê¡¢ ¾¤Î¥é¥¤¥Ö¥é¥ê¤ò¥ê¥ó¥¯¤·¤ÆÆ°ºî¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤¡£

Ä̾盧¤Î¥¤¥ó¥é¥¤¥ó¥³¡¼¥É¤Ï¥¹¥¿¥Ã¥¯¥Ý¥¤¥ó¥¿¤ò°ÜÆ°¤¹¤ë 1 ¤Ä¤ÎÌ¿Îá (instruction) ¤«¤é¹½À®¤µ¤ì¤Æ¤ª¤ê¡¢ ¥¹¥¿¥Ã¥¯¥ª¡¼¥Ð¡¼¥Õ¥í¡¼¤ò¥Á¥§¥Ã¥¯¤·¤Ê¤¤¡£ ¤è¤Ã¤Æ NULL ¥¨¥é¡¼¤¬ÊÖ¤µ¤ì¤ë¤³¤È¤Ï¤Ê¤¤¡£

¥Ð¥°

alloca() ´Ø¿ô¤Ï¡¢µ¡¼ï¤È¥³¥ó¥Ñ¥¤¥é¤Ë°Í¸¤¹¤ë¡£ ¿¤¯¤Î¥·¥¹¥Æ¥à¤Ç¤Ï¼ÂÁõ¤Ë¥Ð¥°¤¬¤¢¤ë¤Î¤Ç¡¢ ¤³¤Î´Ø¿ô¤Î»ÈÍѤϿ侩¤µ¤ì¤Ê¤¤¡£

¿¤¯¤Î¥·¥¹¥Æ¥à¤Ë¤ª¤¤¤Æ¡¢´Ø¿ô¥³¡¼¥ë¤Î°ú¤­¿ô¤Î¥ê¥¹¥ÈÆâ¤Ç¤Ï alloca() ¤¬»È¤¨¤Ê¤¤¡£ ¤³¤ì¤Ï¡¢ alloca() ¤Ë¤è¤Ã¤ÆͽÌ󤵤ì¤ë¥¹¥¿¥Ã¥¯Îΰ褬¡¢ ´Ø¿ô°ú¤­¿ô¤Ë»È¤ï¤ì¤ë¥¹¥¿¥Ã¥¯Îΰè¤ÎÃæ¤Ë¸½¤ì¤Æ¤·¤Þ¤¦¤¿¤á¤Ç¤¢¤ë¡£

´ØÏ¢¹àÌÜ

brk(2), pagesize(2), calloc(3), malloc(3), realloc(3)