<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="http://rss.egloos.com/style/blog.xsl" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
	<title>꽃파는거북이</title>
	<link>http://sian999.egloos.com</link>
	<description>Messenger ID      -ㅅ-     

sian999@nate.com      

sian999@hotmail.com
</description>
	<language>ko</language>
	<pubDate>Sun, 19 Oct 2008 09:14:46 GMT</pubDate>
	<generator>Egloos</generator>
	<image>
		<title>꽃파는거북이</title>
		<url>http://pds5.egloos.com/logo/200709/11/50/c0057750.gif</url>
		<link>http://sian999.egloos.com</link>
		<width>60</width>
		<height>50</height>
		<description>Messenger ID      -ㅅ-     

sian999@nate.com      

sian999@hotmail.com
</description>
	</image>
  	<item>
		<title><![CDATA[ 난 그렇다~ ]]> </title>
		<link>http://sian999.egloos.com/4679766</link>
		<guid>http://sian999.egloos.com/4679766</guid>
		<description>
			<![CDATA[ 
  직접 먹여주는 떡보단<br><br>내가 직접 찾아먹는 떡이 좋더라..<br><br>떡을 찾지 못하더라도<br><br>그 과정에서 떡보다 큰것을 얻을수있기에<br><br>난 그렇게 살것이다..<br><br>			 ]]> 
		</description>
		<category>일상</category>

		<comments>http://sian999.egloos.com/4679766#comments</comments>
		<pubDate>Sun, 19 Oct 2008 09:14:46 GMT</pubDate>
		<dc:creator>꽃파는거북이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 다시시작 ]]> </title>
		<link>http://sian999.egloos.com/4664380</link>
		<guid>http://sian999.egloos.com/4664380</guid>
		<description>
			<![CDATA[ 
  <p>Go!!!!!!!!!!!!!!!</p>			 ]]> 
		</description>
		<category>일상</category>

		<comments>http://sian999.egloos.com/4664380#comments</comments>
		<pubDate>Sat, 11 Oct 2008 03:58:27 GMT</pubDate>
		<dc:creator>꽃파는거북이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 미이라3 ]]> </title>
		<link>http://sian999.egloos.com/4529124</link>
		<guid>http://sian999.egloos.com/4529124</guid>
		<description>
			<![CDATA[ 
  <div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds9.egloos.com/pds/200808/03/50/c0057750_489556b851db6.jpg" width="500" height="712.025316456" onclick="Control.Modal.openDialog(this, event, 'http://pds9.egloos.com/pds/200808/03/50/c0057750_489556b851db6.jpg');" /></div><br>미이라3<br><br>진짜 재미없다 고예산 B급 액션물 - -<br><br>여주인공은 이쁘더라<br /><br />좋게봐줄래도 마음에드는부분은 진정 여주인공이 내취향이라는것뿐 -_-<br><br>나름 초반부터 등장하는 악당측 여자는 도대체 뭐냐 <br><br>비중도없으면서 눈에띄는 인상을 가지고 나와서<br><br>쓸대없이 싸움 조금 총질 조금하다 악당쫄따구 <br><br>죽을때 사랑하고있던거니 왜 거기 딸려들어가죽니<br><br>그리고 악당쫄따구 얘는 도대체 미이라를 부활한 이유가 뭔데 <br><br>이유없이 부활하고 쫓아다니다가 <br><br>포기할까하다 왕이 따라와라 한마디 하니까 다시 졸졸 쫓아가서 또 열심히 쫄따구 노릇..<br><br>뭐 남주인공 여주인공이 선남선녀다보니 나중에 서로 좋아한다는건 이해해준다쳐도<br><br>솔직히 또라이아냐? 만나자마자 칼들고 죽이려고 달려들던애를 <br><br>두번째 만났을때 그냥 예쁘다는거 하나만으로<br><br>그렇게 사람을 믿어버려? 에라이--<br><br>그리고 미이라왕 그늠은 - - 용변신하고 완전 초강력보스몹으로 변하더니<br><br>왜 그상태로 안싸우는데 - -? 변신스킬사용에 제한이 있냐<br><br>용변신하고 불 몇번쏘다보면 쫄따구들 다 죽이고 다니겠다 - -<br><br>휴 그리 기대는 안하고 보긴했는데 정말...비추다!!!!<br><br>올해 최악의영화 당첨 탕탕탕			 ]]> 
		</description>
		<category>여가</category>

		<comments>http://sian999.egloos.com/4529124#comments</comments>
		<pubDate>Sun, 03 Aug 2008 07:09:41 GMT</pubDate>
		<dc:creator>꽃파는거북이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 미안 ]]> </title>
		<link>http://sian999.egloos.com/4526501</link>
		<guid>http://sian999.egloos.com/4526501</guid>
		<description>
			<![CDATA[ 
  너한텐 지은죄가 너무 많아<br><br>또다시 상처주기싫어서<br><br>비겁하지만 더이상은 안할래<br><br>좋은사람 만날꺼야 넌 그러기에 충분한사람이니까<br>			 ]]> 
		</description>
		<category>일상</category>

		<comments>http://sian999.egloos.com/4526501#comments</comments>
		<pubDate>Fri, 01 Aug 2008 16:55:59 GMT</pubDate>
		<dc:creator>꽃파는거북이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ dd ]]> </title>
		<link>http://sian999.egloos.com/4418560</link>
		<guid>http://sian999.egloos.com/4418560</guid>
		<description>
			<![CDATA[ 
  dd<div style="text-align:center"><img class="image_mid" border="0" onmouseover="this.style.cursor='pointer'" alt="" src="http://pds8.egloos.com/pds/200806/12/50/c0057750_4850ac840e2de.jpg" width="500" height="399.583333333" onclick="Control.Modal.openDialog(this, event, 'http://pds8.egloos.com/pds/200806/12/50/c0057750_4850ac840e2de.jpg');" /></div>			 ]]> 
		</description>

		<comments>http://sian999.egloos.com/4418560#comments</comments>
		<pubDate>Thu, 12 Jun 2008 04:56:42 GMT</pubDate>
		<dc:creator>꽃파는거북이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ union ]]> </title>
		<link>http://sian999.egloos.com/3963101</link>
		<guid>http://sian999.egloos.com/3963101</guid>
		<description>
			<![CDATA[ 
  <p>&nbsp;union Field<br>&nbsp;{<br>&nbsp;&nbsp;struct TypeValue<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;short&nbsp;lowindex:16;<br>&nbsp;&nbsp;&nbsp;short&nbsp;highindex:16;<br>&nbsp;&nbsp;}_TypeValue;</p><p>&nbsp;&nbsp;void*&nbsp;data;</p><p>&nbsp;&nbsp;Field( short lowindex, short highindex )<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;_TypeValue.lowindex = lowindex ;<br>&nbsp;&nbsp;&nbsp;_TypeValue.highindex = highindex ;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;Field( void *ptr )<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;data&nbsp;=&nbsp;ptr;<br>&nbsp;&nbsp;}</p><p>&nbsp;&nbsp;void&nbsp;SetIndex( short lowindex, short highindex )<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;_TypeValue.lowindex = lowindex;<br>&nbsp;&nbsp;&nbsp;_TypeValue.highindex = highindex;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;void&nbsp;SetPointer( void *ptr )<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;data&nbsp;=&nbsp;ptr;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;short&nbsp;GetLowIndex()<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;return _TypeValue.lowindex;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;short&nbsp;GetHighIndex()<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;return _TypeValue.highindex;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;void*&nbsp;GetPointer()<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;return data;<br>&nbsp;&nbsp;}<br>&nbsp;};</p><br/><br/>tag : <a href="/tag/union" rel="tag">union</a>,&nbsp;<a href="/tag/datafiled" rel="tag">datafiled</a>			 ]]> 
		</description>
		<category>프로그래밍</category>
		<category>union</category>
		<category>datafiled</category>

		<comments>http://sian999.egloos.com/3963101#comments</comments>
		<pubDate>Mon, 26 Nov 2007 09:43:53 GMT</pubDate>
		<dc:creator>꽃파는거북이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ Thread Local storage ]]> </title>
		<link>http://sian999.egloos.com/3945779</link>
		<guid>http://sian999.egloos.com/3945779</guid>
		<description>
			<![CDATA[ 
  <p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><b style="mso-bidi-font-weight: normal"><span lang="EN-US" style="COLOR: red"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림">Thread Local storage<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></span></span></span></b></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><b style="mso-bidi-font-weight: normal"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 굴림">&nbsp;</span></o:p></span></b></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><b style="mso-bidi-font-weight: normal"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림">동적 스레드 로컬 저장소<span lang="EN-US"><o:p></o:p></span></span></span></b></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><b style="mso-bidi-font-weight: normal"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 굴림">&nbsp;</span></o:p></span></b></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림">스레드마다 할당하는 방식으로 데이터를 저장할 필요가 있거나 <br>이렇게 하는 방법이 더 편할때가 있다<span lang="EN-US">.</span></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 굴림">&nbsp;</span></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림"><span lang="EN-US">TlsAllock</span>함수를 사용해서<span lang="EN-US"> Index</span>를 할당한다</span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 굴림"></span></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림"><span lang="EN-US">TlsAllock</span>은 비트 플래그의 배열에서 사용되지 않은 항목을 찾아서 사용하는것으로 표시하고 함수를 호출한 스레드에게 인덱스를 리턴한다<span lang="EN-US">.</span></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="COLOR: red"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림">DWORD TlsAllock(void)<o:p></o:p></span></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 굴림">&nbsp;</span></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림">리턴된<span lang="EN-US"> Index</span>값을 이용해서<span lang="EN-US"> TlsSetValue </span>함수를 호출하면 인덱스의 위치에 있는 <br>스레드 저장소에<span lang="EN-US"> 32</span>비트 값을 저장할 수 있다<span lang="EN-US">.</span></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="COLOR: red"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림">BOOL TlsSetValue( DWORD dwTlsIndex, LPVOID lpvTlsValue )<o:p></o:p></span></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 굴림">&nbsp;</span></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림"><span lang="EN-US">Tls </span>배열에 저장된 값은<span lang="EN-US"> TlsGetValue </span>함수를 통해서 접근할 수 있다<span lang="EN-US">.</span></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="COLOR: red"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림">LPVOID TlsGetValue( DWORD dwTlsIndex )<o:p></o:p></span></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 굴림">&nbsp;</span></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림"><span lang="EN-US">TlsAlloc</span>에서 리턴된<span lang="EN-US"> Index</span>는 전역 변수에 저장되어 <br>콜 스택을 통하지 않고도 모든 스레드에서 사용할 수 있다<span lang="EN-US">.<br><br></span></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 굴림"></span></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림">프로세스가<span lang="EN-US"> Tls Index</span>의 사용을 끝나면<span lang="EN-US"> TlsFree</span>호출을 이용해서 인덱스를 반환할 수 있다<span lang="EN-US">.</span></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="COLOR: red"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림">BOOL TlsFree( DWORD dwTlsIndex )<o:p></o:p></span></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 굴림">&nbsp;</span></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><b style="mso-bidi-font-weight: normal"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림">정적 스레드 로컬 저장소<span lang="EN-US"><o:p></o:p></span></span></span></b></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 굴림">&nbsp;</span></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림">정적 스레드 로컬 저장소는 특별한 저장소 선언 <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><st1:PersonName w:st="on"><?xml:namespace prefix = st2 ns = "urn:schemas:contacts" /><st2:Sn w:st="on">지</st2:Sn><st2:GivenName w:st="on">정자</st2:GivenName></st1:PersonName><span lang="EN-US"> __declspen(thread)</span>를 사용한다<span lang="EN-US">.</span></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림">이 <st1:PersonName w:st="on">지정자</st1:PersonName>를 사용해서 변수를 정의하면 비쥬얼<span lang="EN-US">C++</span>컴파일러가 변수를<span lang="EN-US"> .tls</span>라는 이름을 갖는 <br>바이너리 파일의 데이터 영역에 변수를 넣도록 지시한다<span lang="EN-US">.</span></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림">링커는 오브젝트 파일에 있는 모든<span lang="EN-US"> .tls</span>파일을 묶어서<span lang="EN-US"> EXE</span>나<span lang="EN-US"> DLL</span>바이너리 안의<span lang="EN-US"> .tls</span>영역에 위치시킨다<span lang="EN-US">.</span></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 굴림">&nbsp;</span></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림">운영체제가 바이너리 실행파일이나<span lang="EN-US"> DLL</span>을 로드할때<span lang="EN-US"> .tls</span>영역에 대해서 특별한 처리를 한다<span lang="EN-US">. </span><br>운영체제는 주 스레드의 영역에 있는 모든 변수를 담을 수 있을만한 크기를 <br>별도의 메모리에 할당한다<span lang="EN-US">. </span><br>새로운 스레드가 프로세스 안에서 할당될 때마다 운영체제는 새로운 스레드를 위한 <br>또 다른 데이터 블록을 할당한다<span lang="EN-US">. </span>특별하게 컴파일러가 생성한 명령어들은 <br>각각의 스레드가 자신을 위해서 특별하게 할당된 데이터 블럭만을 접근하도록 보장한다<span lang="EN-US">.</span></span></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><o:p><span style="FONT-SIZE: 100%; FONT-FAMILY: 굴림">&nbsp;</span></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="FONT-SIZE: 100%"><span style="FONT-FAMILY: 굴림">정적<span lang="EN-US"> TLS</span>의 문제점은 프로그램이 처음 로드될 때 운영체제가 <br>특별한<span lang="EN-US"> .tls </span>메모리 블럭의 크기를 결정해야 한다는 사실이다<span lang="EN-US">. <br></span>이것은<span lang="EN-US"> EXE</span>파일에 정의된 정적<span lang="EN-US"> TLS</span>변수와 <br>제한적으로 링크된<span lang="EN-US"> DLL</span>의 경우에도 잘 동작하게 된다<span lang="EN-US">. </span>그러니<span lang="EN-US"> <br>LoadLibrary</span>를 사용해서 프로그램 코드가 로드한<span lang="EN-US"> DLL</span>은<span lang="EN-US"> <br>.tls </span>메모리 블록의 요구되는 크기를 알수 없으며 처음에 생성할 때<br>&nbsp;이외에는 운영체제가<span lang="EN-US"> TLS</span>영역의 크기를 확장할 수 없다<span lang="EN-US">. </span><br>운영체제는<span lang="EN-US"> LoadLibrary</span>를 사용해서<span lang="EN-US"> .tls </span>세그먼트를 포함하는<span lang="EN-US"> <br>DLL</span>을 로드하도록 하지만<span lang="EN-US">, </span>아마 적절하게 저장소를 할당하지는 못할 것이다<span lang="EN-US">. </span><br>이런 식으로 로드된<span lang="EN-US"> DLL</span>에 정의된<span lang="EN-US"> __declspec(thread)</span>변수들을 <br>사용하는는 것은 접근 위반이나 다른 잘못된 결과를 유발할 수 있다<span lang="EN-US">. </span><br>라이브러리의 정적 스레드 로컬 저장소를 사용할 때 라이브러리가 <br>동적으로 로드되고 링크된다면 아마도 이 라이브러리는 제대로 동작하지 않을 것이다<span lang="EN-US">. </span><br>따라서 에플리케이션에만 정적 스레드 로컬 저장소를 사용해야 하고<span lang="EN-US">, <br></span>라이브러리는 동적 스레드 로컬 저장소<span lang="EN-US"> API</span>를 사용해야만 한다<span lang="EN-US">.<br><br><br>출처 : Win32 Multithreaded Programming</span></span></span></p><br/><br/>tag : <a href="/tag/Thread" rel="tag">Thread</a>			 ]]> 
		</description>
		<category>프로그래밍</category>
		<category>Thread</category>

		<comments>http://sian999.egloos.com/3945779#comments</comments>
		<pubDate>Mon, 19 Nov 2007 09:30:58 GMT</pubDate>
		<dc:creator>꽃파는거북이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 정신차려!!!! ]]> </title>
		<link>http://sian999.egloos.com/3938705</link>
		<guid>http://sian999.egloos.com/3938705</guid>
		<description>
			<![CDATA[ 
  <p>마무리가 계속 어설프다..<br></p><p>정신차리자!!</p><br/><br/>tag : <a href="/tag/정신차려" rel="tag">정신차려</a>			 ]]> 
		</description>
		<category>일상</category>
		<category>정신차려</category>

		<comments>http://sian999.egloos.com/3938705#comments</comments>
		<pubDate>Fri, 16 Nov 2007 09:01:55 GMT</pubDate>
		<dc:creator>꽃파는거북이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ STL의 Pointer 삭제 ]]> </title>
		<link>http://sian999.egloos.com/3935596</link>
		<guid>http://sian999.egloos.com/3935596</guid>
		<description>
			<![CDATA[ 
  <p>STL 컨테이너의 대부분의 함수들은 값 전달 방식으로 인자를 <br><br>받아들이기 때문에 항상 인자값의 복사가 일어나게 된다<br><br></p><p>덩치가 큰 구조체나 객체의 복사에 따른 성능 감소를 피하기 위해서는 <br><br>객체 자체가 아니라 객체에 대한 포인터를 넘겨주도록 해야 할 것이다.<br><br></p><p>동적으로 할당된 구조체나 객체들에 대한 포인터를 다룰 때에는 주의해야 할 점들이 있는데, <br><br>객체를 사용하고 난 다음에는 반드시 할당된 메모리를 <br><br>명시적으로 해제해 주어야 한다는 점이다.<br><br>컨테이너 자체는 자신의 가지고 있는 데이터가 어떤것인지를 알지 못하므로 <br><br>객체들에 할당된 메모리를 컨테이너가 자동적으로 해제하지는 않는다는 점을 명심해야한다.<br><br>ex) <br><span style="BACKGROUND-COLOR: #ffffff">for(&nbsp; std::list&lt; data* &gt;::iterator iter = list.begin(); iter != list.end() ;&nbsp;)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;if( (*iter)-&gt;GetData() == 2 )<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br></span><span style="BACKGROUND-COLOR: #ffffff"><span style="COLOR: #ff0000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete (*iter);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iter = list.erase(iter);<br></span>&nbsp;&nbsp;&nbsp;&nbsp;}<br>&nbsp;&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iter++;<br>&nbsp;&nbsp;&nbsp;&nbsp;}<br>}<br><br><br>덤으로 위처럼 지운다면 erase의 return값이 <br><br>다음 iterator를 가르키기때문에 한번의 루프안에 원하는값을<br><br>모두 지워줄수있다. ( 난 여태까지 루프 여러번돌렸다 - - )<br><br><br><br>추가---------------------------------------------------------------------------------<br><br>주의할점<br>포인터가 객체일경우 sort를 했을때 적절한 연산자가 설계되어있다 해도 <br><br>객체 안의 내용의 정렬되는것이 아닌<br><br>포인터의 실제값(즉 메모리 주소)에 대해서 정렬을 수행하는것이다.<br><br><br>주의할점2<br>컨테이너를 복사할때 복사되는 것은 객체 자체가 아니라 포인터들임을 명심해야 한다.<br><br>동일한 객체를 가리키는 포인터가 여러 개 존재한다는 것은 <br><br>메모리 관리의 측면에서 매우 위험한 일이다.<br><br>(한쪽을 해제하면 다른 쪽은 유효하지 않은 메모리를 가리키게 된다).<br><br>이에 대한 해결책은 두 가지 뿐이다. 포인터 관리에 세심한 주의를 기울이거나,<br><br>컨테이너에서 컨테이너로 요소를 복사하는<br>&nbsp;<br>STL함수나 알고리즘을 사용하지 않는 것이다.<br><br><br>출처 : GameProgramming Gems 1<br></span></p>			 ]]> 
		</description>
		<category>프로그래밍</category>

		<comments>http://sian999.egloos.com/3935596#comments</comments>
		<pubDate>Thu, 15 Nov 2007 04:54:02 GMT</pubDate>
		<dc:creator>꽃파는거북이</dc:creator>
	</item>
	<item>
		<title><![CDATA[ 디버깅 프로세스 ]]> </title>
		<link>http://sian999.egloos.com/3933381</link>
		<guid>http://sian999.egloos.com/3933381</guid>
		<description>
			<![CDATA[ 
  1단계 : 버그를 복사한다.<br>2단계 : 버그를 기술한다.<br>3단계 : 항상 버그를 내가 만든것이라고 가정한다.<br>4단계 : 분할 통치<br>5단계 : 창조적으로 생각한다.<br>6단계 : 보조 툴<br>7단계 : 심도있는 디버깅을 시작한다.<br>8단계 : 버그가 수정되었는지 검증한다.<br>9단계 : 배우고 공유한다.<br><br><br>알면서도 지키기 힘드네 - -;<br><br>출처: Debugging Applications .Net Windows<br/><br/>tag : <a href="/tag/디버깅" rel="tag">디버깅</a>			 ]]> 
		</description>
		<category>프로그래밍</category>
		<category>디버깅</category>

		<comments>http://sian999.egloos.com/3933381#comments</comments>
		<pubDate>Wed, 14 Nov 2007 08:01:37 GMT</pubDate>
		<dc:creator>꽃파는거북이</dc:creator>
	</item>
</channel>
</rss>
