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

누구게님의 프로필 이미지
누구게

작성한 질문수

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

STL Allocator

vector 생성시 메모리 참조 오류가 납니다

작성

·

180

0

stomp allocator를 적용한 vector를 생성시에 내부에서 아래와 같이 1바이트를 할당하는데 그이후에 쓰기 액세스 오류가 발생합니다.

memory, allocator파일 그대로 받아서 넣어도 동일합니다 ㅠ

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

ssay8888님의 질문에 대해 답변드립니다.

오류 메시지와 스크린샷을 바탕으로, vector 생성시 1바이트 할당 후 발생하는 쓰기 액세스 오류는 일반적으로 메모리 할당 및 접근과 관련된 문제에서 발생합니다. 사용하시는 stomp allocator와 관련 코드의 정확한 구현을 확인하지 못했으나, 일반적인 조언을 드립니다.

  1. Allocator의 구현을 확인하세요: Custom allocator를 사용하면서 발생하는 문제라면, allocator의 구현에서 메모리 할당, 해제 과정에 오류가 없는지 검사해보세요. 특히, allocate 함수 및 deallocate 함수 내의 로직이 정상적인지 확인이 필요합니다.

  2. 메모리 오버플로우 검사: 할당된 메모리 범위를 벗어나는 접근이 일어나지 않았는지 확인하세요. C++에서는 벡터나 다른 컨테이너에 대한 오버플로우 접근이 쉽게 발생할 수 있습니다.

  3. 디버그 도구 사용하기: Visual Studio나 다른 IDE의 디버깅 도구를 사용하여 오류가 발생하는 정확한 위치와 원인을 분석해보세요. 메모리 참조 오류의 경우, 호출 스택을 확인하여 어느 시점에서 문제가 발생하는지 추적할 수 있습니다.

  4. STL(Container_base12, Iterator_base12 등)과 관련된 내부 구현을 직접 수정하거나 재정의하지 않았는지 확인하세요. STL의 내부 구현에 접근하거나 수정하는 것은 매우 위험할 수 있으며, 오류의 원인이 될 수 있습니다.

해결이 어려운 경우, allocator의 구현 코드나 오류가 발생하는 부분의 보다 상세한 코드를 함께 공유해주시면 더 정확한 원인 분석과 해결 방안을 제시할 수 있습니다.

누구게님의 프로필 이미지
누구게

작성한 질문수

질문하기