텍스트 파일을 읽고 파일의 작은 줄 수의 벡터를 성공적으로 반환하는 함수가 있습니다. 내가 선을 처리 할 수있는 기능이 벡터를 통과하고 벤 보이트가 지적한대로,알 수없는 함수 호출에서 처리되지 않은 예외가 발생했습니다.
Unhandled exception at 0x00267EF9 in Bridge.exe: 0xC00000FD: Stack overflow (parameters: 0x00000000, 0x00A82000). occurred
있도록 오류가 발생했습니다, 아마 분명히 예를 던졌다 기능과는 아무런 관련이없는 스택 오버 플로우가 발생했습니다
int LinesToCards(std::vector<std::string>& lines) {
int retval = -999;
return retval;
}
이는 제 3 자 DLL에 필요한 라인이 있던 주에서 호출 된
int main()
{
std::string cards[MAXDEALS][DDS_HANDS][DDS_SUITS] ;
int retval = -999;
retval = LinesToCards(lines);
return 0;
}
#DEFINE 4을 DDS_HANDS#DEFINE의 DDS_SUITS 4 은 변경되었지만 원래 이제 예외가 발생
#define MAXDEALS 999
를 작동하지 않을 수 있습니다. 코드를 줄이면
#define MAXDEALS 890
코드가 다시 실행됩니다. 내가 그렇게한다면
#define MAXDEALS 891
충돌합니다. 16240과 16256 사이에 마법의 숫자가 있습니까?
호출자가 스켈레톤 함수를 호출하지 않는 경우, 호출자 함수 ReadFileStable이 유효합니까? 무한 재귀는 스택 오버플로를 설명 할 것입니다 –
죄송합니다. main은 둘 다 호출합니다. ReadFileStable은 LinesToCards로 처리 할 입력 행을 가져옵니다. – DLyons
전체 프로그램을 우리에게 보여주지 않으면 프로그램의 미묘한 문제가 무엇인지 말할 수 없습니다. –