일반적으로 (메모리 관리 측면에서) 정적 배열보다는 동적 배열이 좋은 상황이 많을거라고 생각한다. 하지만 귀찮기도 하고, 평소 cpp를 쓸 일이 PS 말고는 없다보니 정적인 전역 배열을 선언하고는 했다. 사실, 가장 큰 문제는 debugging할 때, pointer 변수를 watch에 등록해도, 배열 내부의 값을 보여주는게 아니라 가르키는 주소나 해당 주소에 저장된 값만 보여주는 것이었다.
하지만 최근 푼 문제에서 길이가 고작 300'000만임에도 불구하고 stack에 할당했더니 메모리 초과가 나고, 팀플도 c로 하다보니 동적 배열을 사용해야 했다. 이왕 이렇게 된 거, 이 기회에 pointer를 debugging할 방법이 없을까 찾아보았는데, 역시 그냥 내가 몰랐던 거였다.
이 글 하나만으로도 해결된다. 요약하자면
*pointer@len
*(type[len])pointer
의 꼴로 watch에 등록하면 된다.
Ronalyo님이 깔끔하게 정리해 주셨고, spking11님이 공식 출처를 밝혀 주셨다. 아낌없이 지식을 나눠주시는 세상 모든 선생님들께 감사드린다.