gpt4 book ai didi

c++ - 调试断言失败 : _CrtIsValidHeapPointer(pUserData)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:08:14 25 4
gpt4 key购买 nike

有时 在 Debug模式 (image) 下运行我的 Qt 项目时出现“调试断言失败”错误。我不知道我哪里错了,因为编译器什么也没说,我不知道该怎么做才能找到我的错误。

我在 Windows Vista 下编程,使用 Qt Creator 2.4.1、Qt 4.8.1。

我的程序必须从激光设备中读取一些信息并将它们保存到一个文件中,代码如下:

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

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

这是我的“incriminated”功能(我认为问题所在)

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

lineAlineB 最初是两个 void QString:我的想法是我进行双向扫描以将信息保存在 2D 矩阵中(从 -X 到 +X反之亦然,而 Y 到达指定目标)。 lineA 记住 (-) 到 (+) 读数; lineB 记住 (+) 到 (-) 读数。当扫描方向改变时,我将 lineA(或 lineB)写入文件并继续扫描。

你明白我说的吗?你能建议我一个解决方案吗?

感谢和抱歉我的英语:P

最佳答案

_CrtIsValidHeapPointerUserData 表示您有堆损坏,调试堆检查器会注意到它。怀疑任何可以将任何信息写入任何已删除动态对象的人。是的,您不会在重写发生时立即收到堆错误,而是在下一次堆检查时收到,这将在任何下一次内存分配/解除分配时执行。然而,应该由单线程应用程序中的调用堆栈简单地跟踪。

关于c++ - 调试断言失败 : _CrtIsValidHeapPointer(pUserData),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10819550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com