때때로 나는이 디버그 모드에서 내 Qt는 프로젝트 (image)을 실행 오류 "디버그 어설 션 실패"얻는다. 컴파일러에서 아무 말도하지 않고 내 오류를 찾기 위해 무엇을해야할지 모르겠으므로 어디서 잘못 됐는지 알 수 없습니다.디버그 어설 션 실패 : _CrtIsValidHeapPointer (pUserData를)
Windows Vista에서는 Qt Creator 2.4.1, Qt 4.8.1을 사용하여 프로그램합니다. 내가 생각하는 경우 문제는 (
void runFunction()
{
configure_Scanning(...);
while(...)
{
// do something
scanFunction();
// do something
}
}
을이 내 "incriminated"기능입니다 :
내 프로그램은 레이저 장치에서 일부 정보를 읽고 다음과 유사한 코드를 파일로 저장한다 아이디어는 내가 이리저리 (양방향 스캔 2 차원 매트릭스에 정보를 저장할 수 있도록한다는 것입니다 : 원격 교육 및 lineB이 처음이 무효 QString 있습니다)
void scanFunction()
{
file.open();
data = getDataFromDevice();
if(flag)
{
if(QString::compare(lineB,"")!=0)
{
QTextStream out(&file);
out << lineB << endl;
lineB = "";
}
lineA.append(data+"\t");
}
else
{
if(QString::compare(lineA,"")!=0)
{
QTextStream out(&file);
out << lineA << endl;
lineA = "";
}
lineB.prepend(data+"\t");
}
file.close();
}
m -X to + X 및 viceversa, Y는 지정된 목표로갑니다). lineA은 (-)에서 (+) 읽기를 암기합니다. lineB은 (+)에서 (-)까지의 수치를 암기합니다. 스캔 방향이 바뀌면 파일에 lineA (또는 lineB)을 쓰고 스캔을 진행합니다.
내가 말한 것을 이해합니까? 해결책을 제안 해 주시겠습니까? 내 영어
감사합니다 죄송합니다 : P는
프로그램을 디버깅하려면 대화 상자에서 다시 시도를 클릭하십시오. 그런 다음 호출 스택을 확인하거나이 질문에 추가하면 잘못되었다는 것을 더 잘 이해할 수 있습니다. sidenote에서 끊임없이 파일을 열고 닫는 것은 필요하지 않으며 약간의 오버 헤드가 발생합니다. – stijn
각 단계마다 파일을 열고 닫는 것이 가장 좋은 전략은 아니지만 예기치 않은 중단이 발생할 경우 데이터 손실을 방지하기 위해이 작업을 수행해야합니다. –
그게'flush()'가하는 것이 아닙니까? – stijn