backup/c,c++
-
객체 포인터배열의 동적할당과 해제backup/c,c++ 2010. 1. 11. 20:58
열혈강의 C++ OOP5를 하다가 문득 알게됐다. 책의 예제코드에서는 객체포인터 배열을 해제하는 코드가 없는 것이다. 순간, 고민에 빠졌다. 동적할당을 하면 반드시 해제를 해주라는 필자의 의도와 반대로 왜 이 코드안에는 해제코드가 없는 것일까.... 다음은 내가 내린 결론과 잊지않기 위한 정리다. 결론은 프로그램 내에서 동적할당을 한 후에 해제를 해주지 않으면 프로그램 종료 후 시스템에서 자동으로 메모리를 반환한다. 더구나 이 코드안의 객체포인터배열은 프로그램 종료직전까지 사용을 한다. 따라서 직접 해제를 해 주지 않아도 크게 상관은 없기 때문에 필자가 생략했다는 것이다. 물론 아무때나 해제를 생략해도 되는 것은 아니다. 동적할당 후 해제를 해 주지 않으면 프로그램 진행 중에 메모리 누수로 부족해 질 수..
-
-
도전 프로그래밍 FOURbackup/c,c++ 2009. 12. 29. 23:13
마지막 도전 프로그래밍 FOUR,,, 애써한 코딩을 기록해두기 위해 도전2도전3도전4도전7 마무리 문제이다 보니 생각보다 많은 시간을 투자해서 해결했다... 하지만 그만큼 자세한 부분 하나까지 새롭게 깨닫는 부분이 많았다. 물론 조금만 더 여유롭게 신경써서 했으면 좀더 좋은 코드가 나왔을테지만 문제를 해결하는데 중점을 두고 코딩을 했다. 또 6, 7번 같은 경우는 자세한 설명이 없는관계로 내가 원하는 대로 코딩을 했다. 주어진 조건은 만족하면서... 조금 지저분하긴 하지만 오랜만에 공부를 시작해서 한 달이 채 안되는 기간에 끝냈다는 것이 보람차다. 하지만 공부의 끝은 없다고 본다....이제 겨우 책 한권 다 봤을 뿐이고 앞으로 멀고도 험한 여정의 첫발을 내 딛었을 뿐이다. 이 한달간의 노력이 제대로 된 ..
-
문자열 입력 함수에 대한 고찰backup/c,c++ 2009. 12. 29. 22:07
1. 입력함수(gets, fgets, scanf) 종류 char* gets(char* s) char* fgets(char * s, int n, FIILE* stream) int scanf(const char* format, ...) 2. 입력함수의 차이 문자열 입력함수는 위의 세가지가 있다.(내가 모르는 함수가 있을수도...) 이 함수들의 차이는 입력시 엔터 즉, \n의 처리에 있다. gets는 알다시피 표준입력(stdin)에 대해서만 사용한다. 그래서인지 입력시 \n를 문자열의 끝으로 인식하고 읽어드리지만 않을 뿐더러 버퍼에 남겨두지도 않는다. 만일 입력시 버퍼에 \n가 남아 있는 경우에는 입력의 기회를 박탈 당한다. 왜냐 \n를 문자열의 끝으로 인식한다고 했기 때문이다. 따라서 입력기회만 없어지고 아..