원래 어설펐지만
너를 좋아했던 그때에
제일 어설펐던거 같아
나를 다 보여주지 못해서 미안,
출처 : 해온's 싸이 (http://www.cyworld.com/nerocoke)
너를 알려라~ 해온!
원래 어설펐지만
너를 좋아했던 그때에
제일 어설펐던거 같아
나를 다 보여주지 못해서 미안,
자유로이 날 수 있는 새가 아님을 원망하기 보다는
이렇게라도 오를 수 있는 달팽이임을 고마워 하라
작은 꽃을 무심코 짖밟았을지도 모르는 사자가 아니라
그 작은 아름다움도 크게 느끼는 달팽이임을 고마워하라
언젠간 꼭 그 높고 커다란 아름다움에 닿으리라
집이 아닌 다른 곳으로 가는 버스
그 막차를 앞에 두고 탈까 말까 고민했던 기억....
가볍게 나선 밤길의 산책중에
상념을 뿌려대던 별빛의 기억...
집을 나서는 추운 겨울의 아침
생각만으로도 따뜻해지던 한 사람의 기억...
가슴 한켠에 누구나 가지고 있을 법한 푸른 기억
....첫사랑의 기억...
1byte를 예로 들면 제일 처음 1비트는 부호로 사용하고, 양수에 128가지 수, 음수에 128가지의 수를 둘 수 있다. 0은 표현해야 하니까 양수는 0부터 127까지, 음수는 -127부터 -0까지 하면 된다(1의 보수). 나는 이것이 좋지만 사람들은 0과 -0이 둘 다 사용된다는 것이 못마땅했나보다. 그래서 음수는 -128부터 -1까지로 정하였고, 양수보다 음수가 하나 더 많아졌다(2의 보수).(-128 ~ 127)물론 더 검색을 해봤기 때문에 2의 보수가 뺄셈이 더 편해서 (계산 후 +1을 해줘야 한다) 그렇게 정했다는 글도 봤다. 하지만 나는 위 얘기가 이해가 더 잘되고 와 닿는다.
추가해야 할 헤더
#include <stdlib.h>
#include <crtdbg.h>
_CRTDBG_MAP_ALLOC 을 추가해준다.
MSDN에서는#define _CRTDBG_MAP_ALLOC 을 1번에서 추가한 헤더위에 정의하면 된다고 하였지만 실제로는 되지 않았다.
malloc의 경우와 비슷하게 _CRTDBG_MAP_ALLOC_NEW를 추가하면 crtdbg.h의 인라인 operator new가 불리게 되어 항상 crtdbg.h의 operator new에서 할당받은 것으로 나오므로 쓸모가 없어진다.
위 글을 읽어보는 것도 귀찮다면 다음 두가지만 추가한다.
다음은 예제로 사용한 소스와 실행 결과이다.
Detected memory leaks!
Dumping objects ->
c:\documents and settings\digicaps\my documents\visual studio 2005\projects\temptestcode\temptestcode\temptestcode.cpp(29) : {106} normal block at 0x003A9F40, 13 bytes long.
Data: <Memory Leak! > 4D 65 6D 6F 72 79 20 4C 65 61 6B 21 00
c:\documents and settings\digicaps\my documents\visual studio 2005\projects\temptestcode\temptestcode\temptestcode.cpp(24) : {104} normal block at 0x003A9EF0, 13 bytes long.
Data: <Memory Leak! > 4D 65 6D 6F 72 79 20 4C 65 61 6B 21 00
Object dump complete.
'[3428] TempTestCode.exe: 네이티브' 프로그램이 0 (0x0) 코드에서 끝났습니다.
"CSIDL_DESKTOP {desktop}"
"CSIDL_INTERNET Internet Explorer (icon on desktop)"
"CSIDL_PROGRAMS Start Menu\Programs"
"CSIDL_CONTROLS My Computer\Control Panel"
"CSIDL_PRINTERS My Computer\Printers"
"CSIDL_PERSONAL My Documents"
"CSIDL_FAVORITES {user name}\Favorites"
"CSIDL_STARTUP Start Menu\Programs\Startup"
"CSIDL_RECENT {user name}\Recent"
"CSIDL_SENDTO {user name}\SendTo"
"CSIDL_BITBUCKET {desktop}\Recycle Bin"
"CSIDL_STARTMENU {user name}\Start Menu"
"CSIDL_DESKTOPDIRECTORY {user name}\Desktop"
"CSIDL_DRIVES My Computer"
"CSIDL_NETWORK Network Neighborhood"
"CSIDL_NETHOOD {user name}\nethood"
"CSIDL_FONTS windows\fonts"
"CSIDL_TEMPLATES"
"CSIDL_COMMON_STARTMENU All Users\Start Menu"
"CSIDL_COMMON_PROGRAMS All Users\Programs"
"CSIDL_COMMON_STARTUP All Users\Startup"
"CSIDL_COMMON_DESKTOPDIRECTORY All Users\Desktop"
"CSIDL_APPDATA {user name}\Application Data"
"CSIDL_PRINTHOOD {user name}\PrintHood"
"CSIDL_LOCAL_APPDATA {user name}\Local Settings\Application Data (non roaming)"
"CSIDL_ALTSTARTUP non localized startup"
"CSIDL_COMMON_ALTSTARTUP non localized common startup"
"CSIDL_COMMON_FAVORITES"
"CSIDL_INTERNET_CACHE"
"CSIDL_COOKIES"
"CSIDL_HISTORY"
"CSIDL_COMMON_APPDATA All Users\Application Data"
"CSIDL_WINDOWS GetWindowsDirectory()"
"CSIDL_SYSTEM GetSystemDirectory()"
"CSIDL_PROGRAM_FILES C:\Program Files"
"CSIDL_MYPICTURES C:\Program Files\My Pictures"
"CSIDL_PROFILE USERPROFILE"
"CSIDL_SYSTEMX86 x86 system directory on RISC"
"CSIDL_PROGRAM_FILESX86 x86 C:\Program Files on RISC"
"CSIDL_PROGRAM_FILES_COMMON C:\Program Files\Common"
"CSIDL_PROGRAM_FILES_COMMONX86 x86 Program Files\Common on RISC"
"CSIDL_COMMON_TEMPLATES All Users\Templates"
"CSIDL_COMMON_DOCUMENTS All Users\Documents"
"CSIDL_COMMON_ADMINTOOLS All Users\Start Menu\Programs\Administrative Tools"
"CSIDL_ADMINTOOLS {user name}\Start Menu\Programs\Administrative Tools" [출처] SHGetFolderPath()로 얻을 수 있는 특수 폴더|작성자 깜찍이