목록포인터 (4)
여행을 개발하다
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/yD8yH/btqvbObYz0O/wxKKf03EbLNSpxpkSKJihk/img.png)
안녕하세요!! 오늘 포스팅할 내용은 2차원 배열의 3번째 응용 예제, '달팽이 배열 만들기'입니다. 달팽이 배열은 정보처리기사 알고리즘 파트 등에서 빈번하게 출제되는 유형입니다. 그럼 배열은 어떻게 구성되어 있는지 살펴보고, C++ 알고리즘으로 구현해보도록 하겠습니다. 1. 달팽이 배열 말 그대로 달팽이 집 모양처럼 생긴 배열을 의미합니다. 여기서 숫자의 배열 형태를 보시면, 안쪽으로 휘말려 들어가는 모양을 하고 있습니다. 그런데 블록을 잡고 자세히 보시면, 5, 4, 4, 3, 3, 2, 2, 1, 1... 의 방식으로 반복되며 채워지는 걸 확인하실 수 있습니다. 그렇다면 이러한 규칙성에 기반해서 코드를 짜보도록 하겠습니다. 2. C++로 달팽이 배열 만들기 2-1. 정적 할당으로 만들기 항상 그래왔던..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/VFlut/btqvbJaL6yq/JnR0NuzvVwbRtVobyKDn21/img.png)
안녕하세요! 오늘은 지난 시간에 이어 '2차원 배열의 동적할당'에 대해 알아보겠습니다. 동적 할당이므로 역시 '포인터(pointer)'도 자연스럽게 등장합니다. 1. 2차원 동적 배열의 선언 1차원 배열을 동적으로 할당할 땐, 가로축, 즉 단 하나의 메모리의 시작 위치만 정해주면 되었었죠? 하지만 2차원 배열은 세로축, 배열 안에 있는 다른 배열도 신경써야 하는 번거로움이 생겨버렸어요. 그래서 포인터도 2개가 필요해졌네요. 하나는 큰 범위에 있는 배열의 시작 메모리 위치를 기억할 포인터 하나, 하나는 인수로 갖고 있는 배열들의 시작 메모리 위치를 기억할 포인터 하나. 이 때 등장하는 개념이 '이중 포인터'입니다. 이중 포인터는 '포인터의 포인터'라고 생각하시면 됩니다. 포인터 변수가 '변수가 저장된 메모..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kJmvz/btqu6AyxbzQ/zBzp8DyKO0BQ3ZQUK0mpB0/img.png)
안녕하세요!! 오늘 포스팅할 내용은 1차원 배열의 동적할당(Dynamic Allocation)입니다. 지난 포스팅에서는 1차원 배열의 정적 할당에 대해서 알아보았는데요. 정적 할당은 배열의 크기, 즉 메모리의 크기를 미리 정하고 사용하는 것이라고 설명드렸습니다. 하지만 프로그래밍에서는 배열의 크기를 정해서 쓰기보다는, 그 때 그 때 유동적으로 변동에서 사용해야 할 경우가 더 많겠죠? 이럴 때 필요한 것이 배열의 동적 할당입니다. 즉, 정적, 동적 할당의 차이는 프로그램의 시작 전에 메모리를 할당하느냐, 혹은 프로그램을 사용하면서 메모리를 할당하느냐로 정리해볼 수 있겠습니다. 1. 1차원 배열의 동적 할당-1 (new 사용하기) 1차원 배열의 동적 할당은 사용자가 얼마만큼의 메모리를 필요로 하는가에 따라 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kMcRi/btqu890NDEQ/likoUCknZdFMZB8xdFij40/img.png)
안녕하세요~ 드디어 C계열 언어의 지옥이라고 불리는 '포인터(Pointer)'에 대해 이야기 할 시간이 되었습니다. 많은 분들이 '멘붕'에 빠졌다고 말씀하셔서, 저 또한 많이 긴장하고 들었습니다.... 하지만 어차피 부딪힐 난관! 초반에 개념만 잘 이해하고 나간다면, 극복 가능한 페이지라고 생각합니다. 그럼 지금부터 포인터(pointer)의 세계로 들어갑니다! 1. 포인터란? - 값(상수)을 기억하지 않고 변수나 배열이 생성된 메모리의 주소를 기억하는 변수 변수를 선언할 때는 초기값을 반드시 지정해줘야 한다는 것. 다들 기억하시죠? 이와 동시 컴퓨터 내에서는 새로운 메모리가 형성이 되고, 변수는 이 메모리에 저장되는데요. 이 메모리의 주소를 알려주는 것이 바로 포인터의 기본이자 핵심 개념이라고 보시면 됩..