85년쯤에 누군가 짠 C 코드를 버그 수정 겸 성능 개선 겸 C++14로 옮기는 중인데 신기한게 한두가지가 아니다.
그 중 가장 충격적이었던 것은, 배열 인덱스로 -1이 들어가 있다는 것이다.
사실 c++17 이상이 아닌 c++14로 옮겨야 하는 이유도 잘 모르겠다.
...
댓글 5
배열을 실제론 N+1잡고, N만 사용한다음에 앞 한칸에 배열 사이즈 넣는 방식의 기법도 있다
익명(211.114)2024-01-10 02:48
답글
이미 오래 전에 해결된 문제이지만 상황 설명을 간단히 해보면
i = -1, 0, 1이 들어가는게 적합한 상황에서, 이차원 배열 A[N][3]이 있다면 p = A[N] + 1; p[i]를 접근하는 식이었음
그런게 좀 많고, 서로 복잡하게 얽혀 있었지만 결국은 정상적으로 작동하는 프로그램이라고 어찌저찌 풀어헤치고 수정함
배열을 실제론 N+1잡고, N만 사용한다음에 앞 한칸에 배열 사이즈 넣는 방식의 기법도 있다
이미 오래 전에 해결된 문제이지만 상황 설명을 간단히 해보면 i = -1, 0, 1이 들어가는게 적합한 상황에서, 이차원 배열 A[N][3]이 있다면 p = A[N] + 1; p[i]를 접근하는 식이었음 그런게 좀 많고, 서로 복잡하게 얽혀 있었지만 결국은 정상적으로 작동하는 프로그램이라고 어찌저찌 풀어헤치고 수정함
왜 다른 것도 아니고 C++14임?
나도 궁금함
-1 인덱스 이런 코드는 짤 땐 신박한데 나중에 유지보수가 헬임 ㅋㅋ