emperor   4년 전

안녕하세요.

게시판의 첫 페이지부터 마지막 페이지까지의 모든 반례를 넣어봤는데, 반례를 못 찾아버렸습니다.

반례나 오류가 나는 부분을 찾아주신다면 감사하겠습니다.

evenharder   4년 전

반례를 찾았습니다.

emperor   4년 전

감사합니다.


비주얼 스튜디오 2019에서는 9라고 출력되는데, ideone 사이트에서는 1이라고 출력되네요.

evenharder   4년 전

찾아보니 C++의 primitive(int, pointer 등등) class member가 생성자 등을 통해서 초기화되지 않을 경우, 초기화되지 않은 상태(uninitialized)로 있다고 합니다. 관련 SO 답변입니다.

그리고 초기화되지 않은 변수에 접근하는 것은 undefined behavior입니다 (무슨 값이 참조될지 모를 뿐더러, 이상한 일이 일어날 수도 있습니다). 때문에, 코드 실행에 있어 일관성을 원하실 경우 class의 변수를 모두 초기화하는 것을 권장드립니다.

emperor   4년 전

감사합니다. 아무래도 방금 막 그 부분에서 문제를 찾았습니다.

비주얼 스튜디오에서도 특정 상황에서는 변수에 쓰레기 값이 들어가네요.

비주얼 스튜디오에서는 정답이 제대로 나와서 발견하지 못한 것 같습니다.

댓글을 작성하려면 로그인해야 합니다.