A veces me sale esta "depuración de aserción" error al ejecutar mi proyecto Qt en modo de depuración (image). No sé dónde estoy equivocado porque el compilador no dice nada y no sé qué hacer para encontrar mi error.depuración de aserción: _CrtIsValidHeapPointer (pUserData)
Programa en Windows Vista, usando Qt Creator 2.4.1, Qt 4.8.1.
Mi programa tiene que leer algunas informaciones desde un dispositivo láser y guardarlos en un archivo con un código similar al siguiente:
void runFunction()
{
configure_Scanning(...);
while(...)
{
// do something
scanFunction();
// do something
}
}
y este es mi función "incriminado" (donde creo que el problema es)
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();
}
Dónde Línea y lineB son inicialmente dos QString vacío: la idea es que hago un escaneo bidireccional para guardar la información en una matriz 2D (lado a otro m -X a + X y viceversa, mientras que Y va a un objetivo específico). línea A memoriza la lectura (-) a (+); línea B memoriza la lectura (+) a (-). Cuando la dirección de escaneo cambia, escribo línea A (o línea B) en el archivo y continúo con el escaneo.
¿Entiende lo que dije? ¿Podría sugerirme una solución?
Gracias y lo siento por mi Inglés: P
haga clic en Reintentar en el diálogo para depurar el programa, tal como dice. Luego, revisa la pila de llamadas o agrégala a esta pregunta y deberías obtener una mejor idea de lo que va mal. En una nota al margen, abrir y cerrar constantemente un archivo probablemente no sea necesario y ocasiona cierta sobrecarga. – stijn
Sé que abrir y cerrar un archivo en cada paso no es la mejor estrategia, pero tengo que hacerlo para evitar la pérdida de datos en caso de una interrupción inesperada. –
¿no es eso lo que 'flush()' hace? – stijn