동적할당 배열 디버그
비주얼스튜디오에서 아래의 코드와 같이 동적할당한 배열은 디버깅을 하기에는 애로사항이 많습니다. a
배열은 사실상 포인터 변수로 비주얼 스튜디오는 우리가 의도한대로 배열인지, 배열이라면 배열의 크기는 몇인지 알지 못합니다. 따라서 디버깅시에 메모리 창을 보면 a
포인터가 가리키고 있는 데이터를 출력합니다.
1 | int main(void) { |
하지만 우리는 a
포인터가 배열이기를 의도하였으니, 디버깅시에도 배열의 상태이 궁금할 것입니다. 그렇다면, 동적할당한 배열의 메모리 상태를 알고자 한다면 어떻게 해야하는지 알아보겠습니다.
이를 가능하게 하기 위해선 단순히 Visual Studio
디버거에게 a
포인터가 해당하는 배열의 범위를 알려주면 됩니다. a
배열에서 배열의 크기는 10임으로 메모리 조사식에 a, 10
을 입력하게 되면 a
의 주소를 시작으로 10칸의 메모리 상태를 보여줍니다.
2차원 배열의 경우
코드를 먼저 살펴보겠습니다. 10x10 형태의 2차원 배열을 만든후, 0 ~ 99까지의 값을 대입합니다. 동적할당한 2차원배열도 마찬가지입니다.
1 | int main(void) { |
이러한 경우라면 아래와 같이 각 인덱스마다 범위를 지정해주면 됩니다.