Ошибка утверждения отладки: _CrtIsValidHeapPointer(pUserData)

Иногдая получаю эту ошибку "Debug Assertion Failed" при запуске моего проекта Qt в режиме отладки. режим ( изображение). Я не знаю, где я ошибаюсь, потому что компилятор ничего не говорит, и я не знаю, что делать, чтобы найти свою ошибку.

Программирую под Windows Vista, использую Qt Creator 2.4.1, Qt 4.8.1.

Моя программа должна считывать некоторую информацию с лазерного устройства и сохранять ее в файл с кодом, подобным этому:

void runFunction()
{
    configure_Scanning(...);

    while(...)
    {
        // do something
        scanFunction();
        // do something
    }
}

и это моя "инкриминируемая" функция (где я думаю проблема)

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();
}

Где lineAи lineBизначально являются двумя пустыми QString: идея состоит в том, что я делаю двунаправленное сканирование для сохранения информации в 2D-матрице (от -X до +X и наоборот, в то время как Y идет к указанной цели). строка Aзапоминает чтение от (-) до (+); строка Bзапоминает чтение от (+) до (-). Когда направление сканирования меняется, я записываю строка A(или строка B) в файл и продолжаю сканирование.

Вы понимаете, что я сказал? Не могли бы вы предложить мне решение?

Спасибо и извините за мой английский: P

5
задан Marco Carletti 30 May 2012 в 15:36
поделиться