C, C++] 헤더파일과, CPP파일로 소스 코드 분리

대학교 학부과정에서 C, C++을 배우는 상황에서는 소스코드를 헤더파일과 CPP(혹은 C, 여기서는 CPP파일로 통칭하겠다.)파일로 분할해서 활용하는 일이 거의 없다. 컴퓨터 사고를 키우는 것과 프로그래밍의 기초에 집중하는 부분도 고려하기 때문인 것도 있지만, 기본적으로 코드를 분할해서 관리할 정도로 코드가 길거나, 재사용할 일이 없기 때문인 것이 가장 크다고 생각한다. 이 글을 쓰면서 헤더파일과 CPP파일 분리를 논하고 있는 본인조차도 학부시절 자료구조 강의를 들을 때가 되어서(아마 연결리스트를 응용하는 함수였던 걸로 기억한다.) 자주 접한 편이었다. 그렇게 강제하거나 따로 배운 건 아니고, 손 하나 대지도 않을 코드를 복사 붙여넣기 해서 괜히 스크롤을 내려야 하는 번거로움에 대한 반항심과 다른 학생들..

C,C++ 2017.07.04 29

두근두근 자료구조 2장 연습문제

어떤 것들은 심심할 때마다 다시 공부하곤 하는데, 자료구조도 그 중 하나다. 개인적으로 공부하면서 정리한 것들이고 답이 틀렸을 수도 있기 때문에 지적은 언제나 환영한다. 1. int a[10][20]에서 배열이 차지하는 메모리 공간의 크기는 얼마인가? int형은 4바이트라고 하자.(4) 800 바이트, 10x20x4 2. float a[100]으로 선언된 배열의 시작 주소를 1000번지라고 할 때, 배열의 10번째 요소의 주소는 몇 번지인가?(4) 1040번지, 1000+10x4 3. 다음 배열 중에서 크기가 가장 큰 배열은?메모리 크기 기준(2) double array2[10]; 10x8 = 80바이트인덱스 크기 기준(3) char array3[40]; 40 4. 크기가 10인 배열 two[]를 선언하..

C, C++] 이중 포인터를 이용해 2차원 배열 사용하기

동적 할당을 사용하면 포인터는 배열처럼 사용할 수 있다.여기까진 포인터를 어렴풋이 아는 입문자들도 포인터의 연산과 배열의 인덱스를 연관지어 어렵지 않게 이해할 수 있는 부분인데, 문제는 이중 포인터를 이용해서 2차원 배열을 선언할 때 발생한다. 일단 본론에 들어가기 앞서, 포인터를 이용해서 배열을 사용하는 방법을 그림과 식으로 이해해보자. Cint* ptr = NULL; ptr = (int*)malloc(sizeof(int)*5); C++ int* ptr = nullptr; ptr = new int[5]; 어렵지 않게 요소 5개 짜리 int형 배열을 동적 할당했다. 포인터를 외우듯 공부한 사람들이어도 아래 그림까지는 어렵지 않게 그려내고 이해할 수 있다. 이제 2차원 배열을 어떻게 동적 할당할 지 생각해..

C,C++ 2018.05.16 2

내 스팀 계정의 가치를 알아보자!

스팀을 써본 사람들이라면, 그리고 그곳에서 엄청난 가격에 지갑을 할인당해본 사람이라면,"내 계정의 가치가 얼마나 될까?"에 대한 궁금증을 갖기 마련이다.그 외에도 게임을 사서 플레이한 총 시간, 사놓고서도 플레이하지 않은 게임의 비율, 게임 별 플레이 시간을 한 번에 보고 싶을 때도 있는데, 스팀 내에서 지원하지 않거나, 지원하지만 파악하기 불편해서 찾다가 포기하는 경우가 대부분이다. 그래서 대부분은 수동으로 계산하지 않는 이상 파악하기 쉽지 않은데, 이것을 한 방에 해결해주는 사이트가 있는데 바로 steamdb.info다. [링크 주소] https://steamdb.info/calculator/ 스팀 게임들의 할인 추이와 한국이 아닌 다른 나라와의 가격을 비교하는 사이트 steamdb.info(링크)를..

기타 2017.08.13 0

Visual Studio 디버깅에서 메모리 값 확인하기

포인터, 변수의 주소에 대해서 그냥 책으로 그림만 그려가면서 공부하면지나치게 추상적으로 받아들여지고 실제로 그렇게 작동하는지 의심을 할 수도 있다.실체를 눈으로 보길 원하는 사람들에게 이건 반드시 그렇게 동작한다고 이야기하거나, 그냥 무작정 이렇게 돌아가니까 그런 줄 알고 활용만 잘하면 된다라고 하기보다는 직접 보여주는 게 좋은데, 비주얼 스튜디오(Visual Studio)의 편리한 디버깅 툴을 이용하면 어렵지 않게 실제 메모리에 어떻게 할당되는지 볼 수 있다. #include #include using namespace std; class Student { public: string name; int sNo; void Print(); static int studentNumber; static Stude..

Etc 2018.06.27 1