인프런 커뮤니티 질문&답변

gamecoding님의 프로필 이미지
gamecoding

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

PacketSession

메모리 동적할당 질문 드립니다.

작성

·

698

0

스크린샷 2023-03-10 025348.png스크린샷 2023-03-10 025410.png

안녕하세요 강사님 동적 할당으로 메모리를 할당해서 패킷을 보낼려고 하는데

왜 (int dir, bool wDown) 값을 추가해서 메모리를 동적할당 하게 되면 스크린샷 2023-03-10 025625.png메모리 엑세스 위반 에러가 나오게 되는건가요?

왜 이런 에러가 뜨는건지 감을 못잡겠어서 질문 드립니다...

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

위 내용만으론 저도 알 수 없습니다.
크래시 나는 위치가 어디인가요? p->objects 설정하는 부분인지 추후 보내는 부분인지를 봐야 할 것 같네요

gamecoding님의 프로필 이미지
gamecoding
질문자

크래시가 나는 위치는 do_send(p) 함수가 호출 되는 부분입니다. 스크린샷 2023-03-10 142514.pngdo_send가 호출되고 인자로 받은 packet을 받아와서 메모리 복사하는 과정에서 패킷의 값이 이상하게 나와버립니다..스크린샷 2023-03-10 142445.png스크린샷 2023-03-10 143031.png스크린샷 2023-03-10 143000.png

Rookiss님의 프로필 이미지
Rookiss
지식공유자

memcpy에 BP를 걸고 거길 유심히 살펴보세요.

1) wsa.len에 들어가는 값이 146이 맞는지
2) _sendBuf는 최소 146 바이트 이상인지 (new char[1000]으로 대체해보면 쉽게 테스트 가능하겠죠)

그리고 memcpy 같은건 어셈으로 보는게 별다른 의미가 없습니다.
차라리 실험을 하면서 범인을 색출하는게 빠릅니다.
마지막으로 개인 작업은 어떻게 어딜 고친지 알 수가 없어서
저도 코드를 봐드릴 수가 없습니다.

gamecoding님의 프로필 이미지
gamecoding

작성한 질문수

질문하기