• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

RegisterRecv() 함수에서

24.02.18 23:00 작성 조회수 94

0

WSABUF wsaBuf;

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

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

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

답변 1

답변을 작성해보세요.

0

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