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

작성자 없음

작성자 정보가 삭제된 글입니다.

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

Session #1

RegisterRecv() 함수에서

24.02.18 23:00 작성

·

178

0

WSABUF wsaBuf;

::WSARecv(_socket, &wsabuf, ...);

위 코드에서 WSABUF 타입 객체를 스택에 생성에서 WSARecv() 함수에 넘기면 이 함수가 바로 완료되지 않고, 나중에 완료 통지로 받는다면 스택에 생성된 WSABUF는 그전에 해제되서 잘못된 메모리에 쓰게 되는 게 아닌가요?

또 이런 api들을 호출할 때 넘길 파라미터를 스택에 생성할 지 new 로 힙에 생성할 지 기준은 어떻게 정하시는지 궁금합니다.

답변 1

0

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

2024. 02. 18. 23:04

그렇긴 한데 사실 wsaBuf는 별 내용이 없고 함수로의 인자 전달만 담당해서
보존되지 않아도 무방합니다.
이런 부분들은 당연히 처음에 소켓 공부를 할 때 궁금증을 갖고 좀 파보다가
어느 정도 많이 하다 보면 익숙해져서 기준이 생깁니다.
대체적으로 꼭 메모리 유지 = 동적 할당 이것이죠

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기