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