STL을 사용하기 시작하면서부터는 new 를 별로 사용하지 않는다. STL library 자체가 그 기능으로 인해 수많은 편의를 제공해 주는 것도 있지만, 이렇게 new 를 이용한 메모리의 동적 할당을 하지 않아도 충분히 코딩을 할 수 있게 해줌으로 인해 메모리를 건드려 발생하는 문제를 회피하게도 해주는 것이다. 이 문제는 상당히 크다. 왜냐 하면, 메모리를 잘못 건드려 문제가 발생하는 경우가 많고, 그럴 경우 디버깅 하기가 조금 어렵기 때문이다.
연습도 할 겸, 데이터가 얼마나 커질지도 알 수 없기에, 요즘 후배녀석 한 명에게 동적 할당을 이용해서 코딩을 하라고 시켰다. 이 녀석이 이제는 C++ 에서 * 와 & 도 적당히 쓸 줄 알고, 메모리 사용하는 것도 조금씩 따라 오기는 하는데 초반에 너무 STL 을 많이 써서 new 가 코드에 들어가기 시작하면 약간 겁을 먹는 듯 한데, ㅋㅋㅋ, 충분히 이해하는 바이다. STL을 쓸 때는 나지 않던 segmentation fault 라던가, access violation 이 여기저기서 튀어 나오고, 메모리가 새는 것이 보이고, 하니, ㅋ, 아주 정신이 없을 것이다. 하지만 이 단계를 지나야 진정 C++의 참맛을 한 20% 맛보는 것이라는 것이 개인적인 생각, ㅋ.
아, * 와 & 가 나왔으니, C++ 을 배우면 초반엔 * 과 & 을 매우 어려워 할 수 있는듯이 보인다. 여태까지 이것을 쉽게 사용하는 C++ 초심자들을 별로 못 봤다.
int * a = NULL;
int b = 10;
a = &b;
*a = 1;
const int& c = b;
c = 10; // 에러.
int **k = &a;
**k = 7;
**k = *a * b;
뭐, 위 같이 *, & 는 그 위치에 따라 의미가 달라지기 때문에 이 부분이 좀 혼란스러운가 보다. 그런데 new 를 쓰거나, 나처럼 pointer 나 참조를 쓸 경우 & 과 * 를 자주 사용해서, ㅋ, 그 후배는 더 혼란스러울지도 모르겠다, 거기다 new 에 의한 메모리 에러가 갑자기 튀어나오기 시작하니, ㅋㅋㅋ.
'컴퓨터 > 전산, 그 외' 카테고리의 다른 글
포인터와 const, 배열에 대한 포인터 (0) | 2014.12.04 |
---|---|
맥북 프로 레티나의 해상도 확인 (13인치) (2) | 2014.01.27 |
colormap 사용하기 (0) | 2013.01.24 |
C++ 사용자의 파이썬 추천 (14) | 2011.09.01 |
개발이라는 작업, 개발자 (0) | 2011.08.20 |