23.03.10 03:04 작성
·
678
0
안녕하세요 강사님 동적 할당으로 메모리를 할당해서 패킷을 보낼려고 하는데
왜 (int dir, bool wDown) 값을 추가해서 메모리를 동적할당 하게 되면 메모리 엑세스 위반 에러가 나오게 되는건가요?
왜 이런 에러가 뜨는건지 감을 못잡겠어서 질문 드립니다...
답변 1
0
2023. 03. 10. 14:11
위 내용만으론 저도 알 수 없습니다.
크래시 나는 위치가 어디인가요? p->objects 설정하는 부분인지 추후 보내는 부분인지를 봐야 할 것 같네요
2023. 03. 10. 16:26
memcpy에 BP를 걸고 거길 유심히 살펴보세요.
1) wsa.len에 들어가는 값이 146이 맞는지
2) _sendBuf는 최소 146 바이트 이상인지 (new char[1000]으로 대체해보면 쉽게 테스트 가능하겠죠)
그리고 memcpy 같은건 어셈으로 보는게 별다른 의미가 없습니다.
차라리 실험을 하면서 범인을 색출하는게 빠릅니다.
마지막으로 개인 작업은 어떻게 어딜 고친지 알 수가 없어서
저도 코드를 봐드릴 수가 없습니다.
2023. 03. 10. 14:33
크래시가 나는 위치는 do_send(p) 함수가 호출 되는 부분입니다. do_send가 호출되고 인자로 받은 packet을 받아와서 메모리 복사하는 과정에서 패킷의 값이 이상하게 나와버립니다..