ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.
HTML º¯È¯¹®¼
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook V4.1//EN"> <chapter lang=ko> <!-- ÀÛ¼ºÀÚ : yundream --> <!-- ÀÛ¼ºÀÏ : 2004/02/04 --> <!-- ¿¬¶ôó : yundream@joinc.co.kr --> <!-- ÇÔ¼ö À̸§À» ÀÔ·ÂÇÕ´Ï´Ù --> <title>malloc(2)</title> <!-- ÀÌ°Ç ÇÔ¼ö¿¡ ´ëÇÑ ´ë·«ÀûÀÎ ¼³¸íÀ̱¸¿ä --> <para> µ¿Àû ¸Þ¸ð¸® ÇÒ´ç ¹× ÇØÁ¦ </para> <!-- ¿©±â¿¡ ÇÔ¼öÀÇ °£´ÜÇÑ »ç¿ë¹ýÀÌ µé¾î°©´Ï´Ù --> <section> <title>»ç¿ë¹ý</title> <para> <screen> #include <stdlib.h> int malloc(size_t size); int calloc(size_t size); int free(void *ptr); void *realloc(void *ptr, size_t size); </screen> </para> </section> <!-- ¿©±â¿£ ÇÔ¼öÀÇ ÀÚ¼¼ÇÑ ¼³¸í ÀÌ µé¾î°©´Ï´Ù --> <section> <title>¼³¸í</title> <para> malloc() ´Â size Å©±â¸¸ÅÀÇ ¸Þ¸ð¸®¸¦ (µ¿ÀûÀ¸·Î)ÇÒ´çÇϱâ À§Çؼ »ç¿ëÇÑ´Ù. malloc()Àº È£Ãâ¿¡ ¼º°øÇÑµÚ ÇÒ´çµÈ ¸Þ¸ð¸®¿µ¿ªÀ» °¡¸£Å°´Â Æ÷ÀÎÅ͸¦ ¹ÝȯÇÑ´Ù. malloc()À» ÀÌ¿ëÇØ¼ ÇÒ´çµÈ ¸Þ¸ð¸® ¿µ¿ªÀº ÀÚµ¿À¸·Î clear µÇÁö ¾Ê´Â´Ù. ´õÀÌ»ó »ç¿ëÇÏÁö ¾Ê´Â ¸Þ¸ð¸®¿µ¿ªÀº ¹Ýµå½Ã free() ¸¦ ÀÌ¿ëÇØ¼ clear ÇØÁÖµµ·ÏÇÑ´Ù. ±×·¸Áö ¾ÊÀ»°æ¿ì ¸Þ¸ð¸® ´©¼ö°¡ ÀϾ¼ö ÀÖ´Ù. </para> <para> calloc()´Â <emphasis>size</emphasis>Å©±â¸¦ °¡Áö´Â <emphasis>nmemb</emphasis>¿ä¼Ò ¸¸ÅÀÇ °ø°£À» ÇÒ´çÇÑ´Ù. ¸Þ¸ð¸®´Â 0À¸·Î ¼³Á¤µÈ´Ù. </para> <para> realloc()´Â <emphasis>ptr</emphasis>°¡ °¡¸£Å°´Â ¸Þ¸ð¸®¿µ¿ªÀÇ Å©±â¸¦ <emphasis>size</emphasis>¸¸Å Á¶ÀýÇÑ´Ù. ¸Þ¸ð¸® ¿µ¿ª¿¡ ÀÖ´ø µ¥ÀÌÅÍ´Â ±×´ë·Î ³²¾Æ ÀÖ°Ô µÈ´Ù. ¸¸¾à <emphasis>ptr</emphasis>°¡ <emphasis>NULL</emphasis>À» °¡¸®Å°°í ÀÖ¾ú´Ù¸é malloc(size)¿Í µ¿ÀÏÇÑ ¼öÇàÀ» º¸¿©ÁØ´Ù. <emphasis>size</emphasis>°¡ 0À̶ó¸é free(ptr)°ú µ¿ÀÏÇÑ ¼öÇàÀ» º¸¿©ÁØ´Ù. </para> <para> free()´Â <emphasis>ptr</emphasis>°¡ °¡¸£Å°´Â ¸Þ¸ð¸® ¿µ¿ªÀ» ÇØÁ¦ÇÑ´Ù. malloc(), calloc(), realloc()¸¦ »ç¿ëÇÑ ¸Þ¸ð¸®¿µ¿ªÀ» ´õÀÌ»ó »ç¿ëÇÏÁö ¾Ê´Â´Ù¸é free()¸¦ È£ÃâÇØ¼ ÀÚ¿øÀÇ ³¶ºñ¸¦ ¸·µµ·Ï ÇÑ´Ù. <emphasis>ptr</emphasis>°¡ <emphasis>NULL</emphasis>À̶ó¸é ¾Æ¹«·± Àϵµ ¼öÇàÇÏÁö ¾ÊÀº °æ¿ì°¡ µÈ´Ù. </para> </section> <!-- ÇÔ¼ö°¡ µÇµ¹·ÁÁÖ´Â °ªÀ̱¸¿ä --> <section> <title>¹Ýȯ°ª</title> <para> calloc(), malloc()´Â ÇÒ´çµÈ ¸Þ¸ð¸®¸¦ °¡¸®Å°´Â Æ÷ÀÎÅ͸¦ ¸®ÅÏÇÑ´Ù. ½ÇÆÐÇß´Ù¸é <emphasis>NULL</emphasis>À» ¸®ÅÏÇÑ´Ù. </para> <para> free()´Â °ªÀ» ¸®ÅÏÇÏÁö ¾Ê´Â´Ù. </para> <para> realloc()´Â »õ·ÎÇÒ´çµÈ ¸Þ¸ð¸®¸¦ °¡¸®Å°´Â Æ÷ÀÎÅ͸¦ ¸®ÅÏÇÑ´Ù. ½ÇÆÐÇÒ °æ¿ì <emphasis>NULL</emphasis>À» ¸®ÅÏÇÑ´Ù. realloc()°¡ ½ÇÆÐÇÏ´õ¶óµµ ÀÌÀü ¸Þ¸ð¸®°¡ ÇØÁ¦µÇ°Å³ª À̵¿ÇÏ´Â ÀÏÀº ¹ß»ýÇÏÁö ¾Ê´Â´Ù. ¸¸¾à realloc()¿äûÇÑ ¸Þ¸ð¸®ÀÇ Å©±â°¡ ÃæºÐÈ÷ Ä¿¼ ÀÌÀü Æ÷ÀÎÅÍ ¿µ¿ª¿¡¼ ¿¬¼ÓµÈ ¸Þ¸ð¸® °ø°£À» ÇÒ´çÇÒ ¼ö ¾ø°Ô µÈ´Ù¸é °ø°£È®º¸°¡ °¡´ÉÇÑ ´Ù¸¥ ¿µ¿ªÀ¸·Î º¹»çµÈ´Ù. </para> </section> <!-- ¿¡·¯°¡ ¹ß»ýÇßÀ»¶§ µÇµ¹·ÁÁÖ´Â °ªµéÀÔ´Ï´Ù --> <!-- ¸¶Áö¸·À¸·Î ¿¡Á¦ ÀÔ´Ï´Ù --> <!-- ¿©±â¿¡´Â ¿ÏÀüÇÑ ¿¹Á¦°¡ µé¾î°¡ Àִµ¥, ±»ÀÌ ¿ÏÀüÇÑ ¿¹Á¦¸¦ ¸¸µéÇÊ¿ä ¾øÀÌ --> <!-- ÄÚµå ÀϺκи¸ ÀÛ¼ºÇؼ ¿Ã·ÁÁּŵµ µË´Ï´Ù --> <!-- "<", ">", "&" µîÀº º¯È¯ÇØ ÁÖ¼Å¾ß Çϴµ¥, ±ÍÂúÀ¸½Ã¸é :-) º¯È¯ ÇÏÁö ¾Ê --> <!-- ¾Æµµ µË´Ï´Ù. Á¦°¡ °Ë»ç ÇØ¼ ¿Ã¸®°Ú½À´Ï´Ù --> <!-- ¿¹Á¦¿¡ ´ëÇÑ °£´ÜÇÑ ¼³¸íÀ» Àû¾îÁּŵµ µÇ±¸¿ä --> <section> <title>¿¹Á¦</title> <para> <screen> #include <string.h> #include <stdlib.h> struct name { int age; char name[25]; }; int main() { char *org_name; struct name *myname; int i; // org_name ¿¡ char ÀÌ 25¸¸Å µé¾î°¥¼ö ÀÖ´Â // ¸Þ¸ð¸® °ø°£À» ÇÒ´çÇÑ´Ù. // malloc ´Â ÇÒ´çµÈ ¸Þ¸ð¸® ¿µ¿ªÀÇ Æ÷ÀÎÅ͸¦ ¸®ÅÏÇØÁֹǷΠ// org_name Àº malloc ¸¦ ÀÌ¿ëÇØ ÇÒ´çµÈ ¿µ¿ªÀÇ Æ÷ÀÎÅ͸¦ °¡¸£Å°°Ô µÈ´Ù. org_name = (char *)malloc(sizeof(char)*25); // myname ¿ª½Ã ¸¶Âù°¡Áö·Î struct name ÀÌ 2°³ ¸¸Å µé¾î°¥¼ö // ÀÖ´Â ¸Þ¸ð¸® °ø°£À» ÇÒ´çÇÑ´Ù. myname = (struct name *)malloc(sizeof(myname)*2); strcpy(org_name, "yundream"); myname[0].age = 25; strcpy(myname[0].name, org_name); strcpy(org_name, "testname"); myname[1].age = 28; strcpy(myname[1].name, org_name); for(i = 0; i < 2; i++) { printf("%d : %s\n", myname[i].age, myname[i].name); } } </screen> </para> <para> À§ÀÇ Äڵ带 º¸¸é org_name ¶ó´Â char Çü Æ÷ÀÎÅͰ¡ ¼±¾ðµÇ¾î ÀÖ´Ù. óÀ½ ¼±¾î½Ã¿¡ ÀÌ Æ÷ÀÎÅÍ´Â ¾Æ¹«°Íµµ °¡¸£Å°Áö ¾Ê°í ÀÖÀ½À¸·Î, ÀÌ Æ÷ÀÎÅ͸¦ »ç¿ëÇϱâ À§Çؼ´Â ¸Þ¸ð¸®¸¦ ÇÒ´çÇϰí ÇÒ´çµÈ ¸Þ¸ð¸®ÀÇ ÁÖ¼Ò¸¦ °¡¸£Å°µµ·Ï ¸¸µé¾î Áà¾ß ÇÑ´Ù. </para> <para> <screen> malloc »ç¿ëÀü +-- 4byte -+ +----------+ | org_name | +----------+ ? | | +-----------------+ malloc »ç¿ëÈÄ +- 25 byte -+ +----------+ +------------+ | org_name | |MEMORY | +----------+ +------------+ | | +-----------------+ </screen> </para> </section> <section> <title>Âü°í¹®Çå</title> <para> <orderedlist> <listitem> <para> <ulink url="http://www.joinc.co.kr/modules.php?name=News&file=article&sid=89">µ¿Àû¸Þ¸ð¸® ÇÒ´ç</ulink> </para> </listitem> </orderedlist> </para> </section> </chapter> |
|
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|