본문 바로가기

Study/C / C++

[퍼온글] 메모리 누수 디버깅하기 링크 : http://cafe.naver.com/ddugi/22 훌륭한 글이다... Written by gazette2 (gazette2@ttl.co.kr) 일반적으로 가장 잡기 힘든 버그의 하나로서 메모리 누수, 메모리 Overwrite등을 꼽을 수 있다. 이런 문제점을 해결하기 위해 CRT(C Runtime library)에서는 여러가지 다양한 메모리 관련 디버그 함수들을 제공한다. 그러나 이것들이 디폴트로 사용하기 힘들게 꺼져 있기 때문에 대부분의 프로그래머들은 이 사실을 알지 못하는 경우가 많다. 그래서 이 글에서는 CRT의 디버그 관련 함수들에 대해 알아보고 어떻게 사용하는 것이 좋은지에 대해 논해 보려고 한다. John Robbins(필자가 가장 좋아하는 프로그래머 중의 한명)가 지은 Debu.. 더보기
[퍼온글] 다시 쓰는 컴파일러 언어와 인터프리터 언어의 차이 링크 : http://hatchling13.blog.me/220070260115 가장 알기 쉽게 확 와닿는 차이점은 바로 속도입니다. 인터프리터 언어로 작성한 프로그램은 컴파일러 언어로 작성한 프로그램보다 실행 속도가 느립니다. 물론 현재는 기술력이 좋아진 탓에 일반적인 사용자가 느낄 정도록 차이가 나지는 않습니다만... 웬만해서는 컴파일러 언어로 작성한 프로그램의 실행 속도가 더 빠른 것이 사실입니다. 지금부터 그 이유를 알아보도록 하죠. 제가 가장 좋아라하는 C++을 예로 들어봅시다. C++로 작성한 소스코드가 프로그램으로 만들어지는 데는 크게 나누어서 세 가지 과정을 거치게 됩니다. 소스 코드 입력, 컴파일, 링크. 우리가 컴파일 버튼을 누르면, 컴파일러는 입력받은 소스 코드를 기계어로 해석, 목적.. 더보기
[퍼온글]TIP. 포인터(pointer)와 참조자(reference)의 차이점에 대해서 알고가자. 링크 : http://whitesnake.uzoo.in/29 c++ 프로그래밍을 하려면 포인터와 참조자에 대한 차이점에 대해서 확실히 이해를 하고 있어야 합니다. 우선 포인터와 참조자가 무엇인지 코드로 살펴봅시다. int * pNum; // 포인터 int & rNum; // 참조자 위와 같이 객체(변수)를 선언할 때 * 를 사용하면 포인터 & 를 사용하면 참조자입니다. 포인터와 참조자의 차이점에 대해서 말하기 전에 공통점에 대해서 먼저 짚고 넘어가겠습니다. # 공통점 : 포인터와 참조자는 다른 객체(변수)를 간접적으로 참조하는 역할을 한다. 즉, 원본 대상을 포인터와 참조자를 이용하여 대신 이용할 수 있도록 한다는 겁니다. 그럼 같은 역할을 하는게 왜 2개나 있을까요? 물론 사용하는 용도에 차이점이 있기.. 더보기
[C++adv] STL 사용법과 주의 사항 [C++adv] STL 사용법과 주의 사항 from 민근 박 더보기
API 1942 따라 만들기 - 중간 - 1942 게임 만들기 - 싱글턴 사용 하여 볼좌표 사용 하여 충돌처리- HP 기능 추가 하여 각자 죽음- 애니메이션 기능 추가- 충돌 처리추후- 아이템- 적군 패턴 더보기
API 비행기 출력 소스 #include #include "resource.h" // LRESULT == 32bit 정수형LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam , LPARAM lParam){// WndProc 함수의 지역변수 선언부HDC hdc;// handle device contextPAINTSTRUCT ps; static HICON hicon;static HBITMAP hBg1,hBg2,hBg3;static HDC hBgDc1,hBgDc2,hBgDc3; static HBITMAP hImgBmp,hImgBmp2;static HDC hImgDc,hImgDc2; switch(message){case WM_CREATE: // inithdc = GetDC(.. 더보기
API 도형 그리기 #include #include // LRESULT == 32bit 정수형LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam , LPARAM lParam){HDC hdc;// handle device contextPAINTSTRUCT ps;char str[256] = "Hello API"; int x,y,kd;double r;int h = 50; switch(message){case WM_PAINT:hdc = BeginPaint(hWnd,&ps); // GetDCOutputDebugString("WM_PAINT"); // rectangleRectangle(hdc,100,100,200,200); // tri angleMoveToEx(hdc,35.. 더보기
Cpp / 스택을 이용한 주소록 #include #include using namespace std; class CONTACTS{private:char name[20];int number;vector vec; public:void setNumber(int newN);void setName(char* newN);int getNumber();char* getName(); void add();void erase();void serch();void print();}; void CONTACTS::setNumber(int newN){number = newN;} void CONTACTS::setName(char* newN){strcpy(name,newN);} int CONTACTS::getNumber(){return number;} char* CO.. 더보기
C언어 링크드 리스트를 이용한 학생 정보 저장 #include #include #include struct LIST{char _name[10];int _age; struct LIST* next;}; LIST* head; void createLIST(){LIST* newList = (LIST*)malloc(sizeof(LIST));LIST* temp; char name[10];int age; printf("이름 : ");scanf("%s",name);fflush(stdin);printf("나이 : ");scanf("%d: ",&age); strcpy(newList->_name,name);newList->_age = age;newList->next =NULL; temp = head;while(temp->next != NULL){temp = temp->n.. 더보기
Black Jack ver.2 블로그 이전 진행중https://sloth-cat.tistory.com/2 텍스트 파일에 점수 저장 기능이름으로 사용자 구분 같은 이름이면 자동으로 점수 불러오기 #include #include #include #include void gameload(char *filename);void init(int *Card);void cardSet(int *DealerC,int *PlayerC, int *Card);int gameStart(int *DealerC,int *PlayerC);int cardPrt(int *Card, int *i, int *Aa);void GameFinish(int gameSet);void gameSave(char *filename); int GameScore = 1000;int Bgo.. 더보기