학습에 크게 지장이 있는건 아니지만 단순 궁금해서 질문드립니다
324
16 asked

Maze.cpp에서 player.Init(&board)를 할 때 Player class 안에 멤버 변수 _board에는 nullptr이 들어 있잖아요 그런데 Player.cpp에서 Init 함수 내에 _pos = _board->GetEnterPos( ) 를 호출 할 때 _board에는 nullptr이 들어있는데 어떻게 GetEnterPos( ) 를 호출 할 수 있는건가요?
제 생각으로는 _board = board로 먼저 _board를 특정 주소값으로 세팅한 다음 GetEnterPos( ) 함수를 호출해야 되는 것 같은데 순서를 뒤바꿔서 해도 실행하는데 전혀 문제가 없더라구요 그 이유가 궁금합니다!
Answer 1
1
제 코드에서는 board->GetEnterPos()로 한 것인데요.
_board->GetEnterPos()로 바꾸고
_board = board를 뒤로 배치하면 크래시가 나야 정상입니다.
어떻게 테스트를 하셨는지 기묘하네요
0
그렇네요... 발단은 제가 본문에서 board->GetEnterPos()를 하신 거를 잘못보고 _board->GetEnterPos()로 잘못 쳐놓고 되길래 그런가보다 하고 넘어갔다가 다시 보니 이상해서 한 질문이었는데 다시 확인해보니

이게 되네요....?? 아무래도 컴파일러가 그냥 잡아주는걸로 이해하면 될까요?? 별 것도 아닌거에 괜히 시간만 뺐는 질문 같아서 안하려다가 혹시 제가 알고 있는게 잘못된건가 싶어서 확인해보고 싶었습니다ㅠㅠ
1
GetEnterPos()가 return Pos{1,1}에 불과하니 인라인 처리되어서
실제로 Pos{1,1}로 박혀서 그럴 것 같네요. GetExitPos()처럼 실제 멤버 변수를 사용하는 애로
바꿔보면 바로 크래시가 날겁니다.
헤더파일에 관한 질문
0
437
1
이진 탐색 트리 삭제 질문
0
700
1
해당 문제 유형을 수학적으로 표현 가능할까요?
0
505
1
vs2022 미로 줄간격
0
1589
2
pos 구조체 초기화 문제
0
498
0
맵이 이상하게 나오는데 무슨 문제인가요?
0
513
1
자동완성 기능 질문
1
521
2
push_back emplace_back 질문있습니다.
0
397
1
Container, Predicate 질문입니다.
0
395
1
_size - 2 질문
0
417
1
Disjoint Set 질문있습니다
0
429
1
우선순위 큐 구현 연습 intellisense 질문
0
401
1
int32 관련 질문
0
278
1
c++에서 처음 보는 문법
0
385
1
힙 정렬과 병합 정렬
0
424
1
resize 질문
0
261
1
처음 보는 for문 문법
0
387
1
환경 설정.. 궁금점
0
388
1
이 비교 연산자를 넣어주는 이유가 있나요?
0
287
1
소멸자 관련 질문
0
250
1
&의 차이
0
290
1
프레임 관리 질문입니다.
0
332
1
연산자 오버로딩 관련 질문입니다.
1
203
1
안녕하세요 goormide 학습자입니다.
0
861
4

