<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://valley.egloos.com/rss/style/style.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title>이글루스 'malloc' 태그 최근글</title>
		<link>http://valley.egloos.com/tag/malloc</link>
		<description>malloc</description>
		<language>ko</language>
		<pubDate>Wed, 18 Jan 2012 20:22:23 +0900</pubDate>
		<generator>Egloos</generator>
		<item>
	<title><![CDATA[memory를 가장 많이 사용하는 module 알아내기]]></title>
	<link>http://jamestic.egloos.com/2893639</link>
	<guid>http://jamestic.egloos.com/2893639</guid>
	<description>
	<![CDATA[ 
<img 
				src="http://thumb.egloos.net/100x76/http://pds22.egloos.com/pds/201201/18/89/d0007089_4f16a73e47730.jpg"  
				alt="memory를 가장 많이 사용하는 module 알아내기" 
				width="100px"  
				height="76pxpx"
				align="left"
				style="border:1px solid #DDDDDD;margin:0 10px 10px 0px;"
				/>  (C관련 재미없는 내용입니다)  memory가 부족하다는 메시지가 나옵니다. RAM을 말하는 거죠. Dynamic Memory allocation입니다. Program상에서 memory를 많이 사용하는 것인데, 가장 많이 사용하는 부분을 찾아내서  개선하는 것이 가장 효율적일 것 같다는 생각이 듭니다. 근데, 그 부분을 어떻게 알아내나요?  일단 Application에서 사용하는 '전체 memory의 크기'를 알아내기는 쉽습니다. ps, top, 작업관리자를 사용하면 알 수 있죠. 근데, main내에서 어떤 코드가 memory를 얼마만큼 사용하고 있는지를 아는 것은 그리 간단한 일이 아니더군요.  관련 Tool을 찾아보았는데, 아직 찾지를 못했습니다. 누군가 알고 계시면, 부탁 드리고요.   제가 사용하는	]]>
	</description>
	<pubDate>Wed, 18 Jan 2012 20:22:23 +0900</pubDate>
	<dc:creator><![CDATA[소프트웨어 이야기]]></dc:creator>
</item>
<item>
	<title><![CDATA[2차원배열 동적할당법]]></title>
	<link>http://RFproject.egloos.com/2876194</link>
	<guid>http://RFproject.egloos.com/2876194</guid>
	<description>
	<![CDATA[ 
친구가 달팽이배열 문제를 물어보길래, 대충 생각난김에 메모겸.  그렇다고 달팽이배열 코드는 아니고... 초간단 2차원배열 동적할당의 예시.   #include &amp;lt;stdio.h&amp;gt; #include &amp;lt;stdlib.h&amp;gt;int main(int argc, char* argv[]) {       int** arr = (int**)calloc(10, sizeof(int*));  // calloc(15, sizeof(int*));       int i, j;      for(i=0; i&amp;lt;10; i++)             arr[i] = (int*)calloc(10, sizeof(int));            for(i=0; i&amp;lt;10; i++)       {             for(	]]>
	</description>
	<pubDate>Wed, 23 Nov 2011 22:45:30 +0900</pubDate>
	<dc:creator><![CDATA[코딩기계]]></dc:creator>
</item>
<item>
	<title><![CDATA[동적 메모리 할당 - malloc, calloc, realloc, free ]]></title>
	<link>http://nnovember.egloos.com/3608726</link>
	<guid>http://nnovember.egloos.com/3608726</guid>
	<description>
	<![CDATA[ 
메모리 할당: malloc(3)#includevoid*malloc(size_t size);//size: 할당받을메모리크기malloc 함수는 인자로 지정한 크기의 메모리를 할당하는 데 성공하면 메모리의 시작 주소를 리턴한다. 만약 메모리 할당에 실패하면 NULL 포인터를 리턴한다. 인자로 지정하는 메모리 크기는 바이트 단위다. 할당된 메모리에는 어떤 형태의 데이터도 저장할 수 있다. 주의할 점이 있는데 malloc 함수는 할당된 메모리를 초기화 하지 않는다. 다음은 malloc 함수를 사용해 문자 100개를 저장할 수 있는 메모리 할당하는 예다.char*ptr;ptr=malloc(sizeof(char) * 100);  메모리 할당과 초기화: calloc(3)#includevoid*calloc(size_t ne	]]>
	</description>
	<pubDate>Thu, 24 Mar 2011 19:30:50 +0900</pubDate>
	<dc:creator><![CDATA[nnovember's study room]]></dc:creator>
</item>
<item>
	<title><![CDATA[Object-C 메모리관리]]></title>
	<link>http://blaxtone.egloos.com/3602915</link>
	<guid>http://blaxtone.egloos.com/3602915</guid>
	<description>
	<![CDATA[ 
 오브젝트씨를 처음 접하면서 가장 난해하고 이해하기 힘든 부분중 하나가 메모리 관리 부분입니다.나중에 잊어버리거나 헷갈릴수 있어서 정리해 놓도록 하겠습니다.C의 경우 메모리 관리는 alloc과 free로 이뤄집니다.a = malloc(size);....free(a);와 같은 형태이죠.C++도 마찬가지입니다. 생성자와 소멸자를 호출해서 메모리 관리를 하게 됩니다.Class();....~Class();물론 malloc, free도 사용합니다.자바의 경우는 조금 다른데, 가비지 콜렉터라는 것이 있어서 따로 메모리 관리를 해줄 필요가 없습니다.a = new A();이렇게 생성해서 쓰기만하면 가비지 콜렉터가 감시를 하다가 쓸모없어지면 메모리에서 삭제를 합니다.물론 급하게 메모리를 늘려야 하는 상황이거나 메모리걱정을 조	]]>
	</description>
	<pubDate>Thu, 17 Mar 2011 12:56:58 +0900</pubDate>
	<dc:creator><![CDATA[My Digital Life ~ with 꼬마, and Bean]]></dc:creator>
</item>
<item>
	<title><![CDATA[동적메모리할당]]></title>
	<link>http://avata007.egloos.com/2704400</link>
	<guid>http://avata007.egloos.com/2704400</guid>
	<description>
	<![CDATA[ 
1. 동적 메모리 할당 방법 방법1) void* malloc(size_t size);    // size:할당받고 싶은 메모리 바이트 수,  void* 리턴받을 자료형 예) char* ptr = NULL; ptr = (char*)malloc(20); if (ptr != NULL)     strcpy(ptr, &quot;hello, world&quot;); printf(&quot;%s\n&quot;, ptr); free(ptr); ptr = NULL; 방법2) void* calloc(size_t num, size_t size)    // num은 할당할 데이터의 개수, size는 데이터 하나의 바이트크기 int* p2 = (int*)calloc(2, sizeof(int));     // int  형 2개에 해당하는 메모리 영역을 생성하여 메모리	]]>
	</description>
	<pubDate>Thu, 13 Jan 2011 22:57:29 +0900</pubDate>
	<dc:creator><![CDATA[인생은 속도가 아니라 방향이다]]></dc:creator>
</item>
<item>
	<title><![CDATA[[glibc] 동적 메모리 관리 (3)]]></title>
	<link>http://studyfoss.egloos.com/5209389</link>
	<guid>http://studyfoss.egloos.com/5209389</guid>
	<description>
	<![CDATA[ 
glibc: 2.10.1  arch: x86  이전 글 보기:  [glibc] 동적 메모리 관리 (1)[glibc] 동적 메모리 관리 (2)  이번에는 malloc 모듈 내의 다른 보조 함수들에 대해서 알아보기로 한다.    가장 먼저 살펴볼 함수는 mallopt() 함수이다.  이 함수는 malloc() 시의 동작을 제어하는 다음과 같은 매개 변수들을 조정할 수 있다.  M_MXFAST: fast bin의 최대 크기이다. 기본값은 64로 설정되어 있으며 최대 80까지 늘릴 수 있다. (이 크기는 malloc() 시 주어지는 인자에 대한 것이며, 실제 chunk 크기는 이보다 약간 커진다.)  M_TRIM_THRESHOLD: free() 호출 시 병합된 chunk의 크기가 이 값보다 커지면 자동으로 sYST	]]>
	</description>
	<pubDate>Tue, 29 Dec 2009 18:48:29 +0900</pubDate>
	<dc:creator><![CDATA[F/OSS study]]></dc:creator>
</item>
<item>
	<title><![CDATA[[glibc] 동적 메모리 관리 (2)]]></title>
	<link>http://studyfoss.egloos.com/5206979</link>
	<guid>http://studyfoss.egloos.com/5206979</guid>
	<description>
	<![CDATA[ 
glibc: 2.10.1  arch: x86  이전 글 보기:   [glibc] 동적 메모리 관리 (1)  이번에는 malloc() 함수의 실행 과정을 따라가 보자.  malloc() 함수의 서비스 루틴은 public_mALLOc() 함수이며  실제로는 전처리 과정에 의해 __libc_malloc()이라는 이름으로 바뀐다.  (__malloc과 malloc은 이 함수에 대한 alias이다.)    public_mALLOc() 함수는 다음과 같은 작업을 수행한다.  __malloc_hook이 정의되어 있다면 해당 hook을 호출한 후 종료한다.그렇지 않으면 malloc을 처리할 heap 영역(arena)를 찾는데 일반적으로 main_arena가 사용된다.arena에 대한 lock을 건 후에 실제 malloc의	]]>
	</description>
	<pubDate>Sat, 26 Dec 2009 21:51:02 +0900</pubDate>
	<dc:creator><![CDATA[F/OSS study]]></dc:creator>
</item>
<item>
	<title><![CDATA[[glibc] 동적 메모리 관리 (1)]]></title>
	<link>http://studyfoss.egloos.com/5206220</link>
	<guid>http://studyfoss.egloos.com/5206220</guid>
	<description>
	<![CDATA[ 
<img 
				src="http://thumb.egloos.net/100x76/http://pds16.egloos.com/pds/200912/25/35/c0098335_4b34adcad42cd.png"  
				alt="[glibc] 동적 메모리 관리 (1)" 
				width="100px"  
				height="76pxpx"
				align="left"
				style="border:1px solid #DDDDDD;margin:0 10px 10px 0px;"
				/> glibc: 2.10.1  arch: x86    이번에는 GNU C library (이하 glibc)에서 동적 메모리를 관리하는 방식에 대해서 살펴볼 것이다.  (여기서 설명하는 내용은 32비트 머신 환경에 해당하며 64비트 환경의 경우 차이가 있을 수 있다.)    glibc 내에 포함된 동적 메모리 할당자 (malloc) 모듈은  Doug Lea가 최초로 작성한 구현(이름의 앞자를 따서 dlmalloc이라고 부른다)을  Wolfram Gloger가 UNIX multi-thread 환경을 고려하여 수정한 ptmalloc2를 기반으로 작성되었다.    동적 메모리로 할당되는 영역(chunk)은 내부적으로 해당 chunk에 대한 metadata를 저장하기 위한  공간을 포함하는데 가장 중요한 정보는 해당 c	]]>
	</description>
	<pubDate>Fri, 25 Dec 2009 21:31:59 +0900</pubDate>
	<dc:creator><![CDATA[F/OSS study]]></dc:creator>
</item>
<item>
	<title><![CDATA[Declaration]]></title>
	<link>http://recipes.egloos.com/5149312</link>
	<guid>http://recipes.egloos.com/5149312</guid>
	<description>
	<![CDATA[ 
<img 
				src="http://thumb.egloos.net/100x76/http://pds17.egloos.com/pds/200910/22/90/c0098890_4ae06f5de19ad.jpg"  
				alt="Declaration" 
				width="100px"  
				height="76pxpx"
				align="left"
				style="border:1px solid #DDDDDD;margin:0 10px 10px 0px;"
				/> 데클러레이션. 선언. 이제부터는 간단한 C 언어 공부를 해보려고 해요. C 언어는 아주 Low Level의 Control이 가능하고요, Code Writer에게 자유도를 엄청나게 주는 언어이고요. Performance가 중요한 부분에 있어서는 아주 유용하게 사용되는 언어이지요. 보통의 Embedded System에서는 C언어가 많이 쓰이고요, 플러스 Linux Kernel등에도 C를 사용하니까 임베디드 시스템 엔지니어는 C에 능통해야 한다고 봐요. 작은 Quiz 하나씩 읽어 가면서 C언어에 대해서 차근차근 다시 생각해 보고요, 어떻게 하면 Bug를 만들지 않을 까 고민해 보도록 해 BoA요. 일단은 작은 Quiz 하나.  int* p_data, p_source; void main(){     *p_data 	]]>
	</description>
	<pubDate>Thu, 22 Oct 2009 23:43:50 +0900</pubDate>
	<dc:creator><![CDATA[친절한 임베디드 시스템 개발자 되기 강좌]]></dc:creator>
</item>
<item>
	<title><![CDATA[[C] 2차원 배열 동적 할당]]></title>
	<link>http://celestarry.egloos.com/2490036</link>
	<guid>http://celestarry.egloos.com/2490036</guid>
	<description>
	<![CDATA[ 
크기가 n*m인 int형 2차원 배열을 동적으로 만드는 방법  int i;int** arr;  //n개의 행을 저장할 메모리 공간 할당arr = (int**)malloc(sizeof(int)*n);   //각 행에 대하여 m개의 열을 저장할 메모리 공간 할당for(i = 0; i &amp;lt; n; i++){  *(arr+i) = (int *)malloc(sizeof(int)*m);  //또는 arr[i] = (int *)malloc(sizeof(int)*m);}      이제 arr의 i번째 행, j번째 열에 대한 접근은  *(*(arr+i)+j) 또는 arr[i][j] 로 하면 된다.	]]>
	</description>
	<pubDate>Mon, 29 Jun 2009 12:24:27 +0900</pubDate>
	<dc:creator><![CDATA[celeste]]></dc:creator>
</item>
<item>
	<title><![CDATA[Double free]]></title>
	<link>http://purewell.egloos.com/3868782</link>
	<guid>http://purewell.egloos.com/3868782</guid>
	<description>
	<![CDATA[ 
각종 표준에는 이미 해체한 메모리를 다시 해체하려고 할 때 행동을 정의하지 않고 있으나, GLIBC는 깔끔하게 자살해주고 있다. 자살할 때 패턴을 눈에 익혀 놓으면 나중에 왜 죽었지?하는 일이 줄어들 것이다.    #include &amp;lt;stdlib.h&amp;gt;    int  main(int argc, char* argv[])  {      void* p(malloc(1024));              free(p);              free(p);              return 0;  }    컴파일 및 실행    $ g++ -O2 -g dblfree.cpp -o dblfree    $ ./dblfree  *** glibc detected *** ./dblfree: double free or 	]]>
	</description>
	<pubDate>Mon, 18 Aug 2008 10:37:09 +0900</pubDate>
	<dc:creator><![CDATA[Purewell.BIZ]]></dc:creator>
</item>
<item>
	<title><![CDATA[[C언어] 동적메모리 malloc과 함수]]></title>
	<link>http://demilune.egloos.com/563138</link>
	<guid>http://demilune.egloos.com/563138</guid>
	<description>
	<![CDATA[ 
 먼저 한개의 소스 코드를 작성해 봅시다  &amp;gt;이렇게(소스코드1)  #include&amp;lt;stdio.h&amp;gt;  #include&amp;lt;stdlib.h&amp;gt;  #include&amp;lt;string.h&amp;gt;    void main()  {          char *pList,temp[512],*pData,*pSeek;          int mode,size,num,pos,totalnum,i;            printf(&quot;총 몇명의 데이터? : &quot;);          gets(temp);          sscanf(temp,&quot;%d&quot;,&amp;amp;num);          size=num*140;//대충 이름20 전화번호20 주소100 해서 140으로 잡습니다          totalnum=num;   	]]>
	</description>
	<pubDate>Mon, 07 Jul 2008 21:42:57 +0900</pubDate>
	<dc:creator><![CDATA[Kyle's egloos]]></dc:creator>
</item>
	</channel>
</rss>

