ofstream으로 파일을 오픈할때, 오픈이 안됐는지 문제가 생깁니다

eyes852의 이미지

일단 "C++을 사용한 객체지향 접근방식 파일구조" 라는 책으로 공부를 하고 있고요...

여기서 필드를 각각 고정된 크기, 가변적 크기 방식으로 저장하는 예제를 해 보는 도중

void testBuffer(IOB& Buff, char* myfile)
{
Person person;
int result;

ofstream TestOut(myfile, ios::out);
result = Buff.WriteHeader(TestOut);

(이하 생략)
}

Buff는 파일로 전송할 레코드를 저장한 버퍼,
myfile 이 파일 이름입니다.

함수 호출은

testBuffer(Buff, "fixlen.dat");

식으로 사용됬고요;

위의 소스에서, ofstream 객체 TestOut을 WriteHeader함수 인자로 넘기는 과정에서 메모리 충돌이 납니다;
0x00000000 위치를 읽는다고.. 파일이 오픈이 안된건지, 객체 생성에 오류가 있는건지 잘 모르겠네요...

하지만 폴더에 파일은 생성되 있고.... 대체 뭐가 문제인 걸까요?

전체 소스를 다 올리지 못하고 오류 발생 부분만 올려서 죄송합니다 ;;;
이부분만의 문제인지 아니면 다른 부분이랑 연동된 문젠지를 잘 모르겠네요 ㅠ0 ㅠ

chadr의 이미지

혹시 IOB& Buff에서 참조자가 NULL을 가르키고 있지 않는지 확인해보세요. 참조자도 NULL을 가르킬 수 있습니다.

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.