• 5155阅读
  • 2回复

请问为什么QList中的某些值会突然清空? [复制链接]

上一主题 下一主题
离线红调
 

只看楼主 正序阅读 楼主  发表于: 2014-06-09
本人学生,正在独立做一个大作业,现在用到了QList,个别时候会出问题,经过一步一步调试发现了在于有时候new一个变量,则与其完全无关的qlist中的指针变量会有某一个变成空指针。
简略后的具体如下(类有POLYGON,NODE,ARC)
class POLYGON
{
public:
QList<*ARC>* ArcList;
void function()
{
  NODE *node1, *node2, *node3, *node4, *node5;
    if(ArcList->count()>4)
    {
        node1 = ArcList->at(4)->BeginNode;
        node2 = ArcList->at(4)->BeginNode;
        node3 = node1;
    }
    NODE *x = new NODE();////////////////////////////////////////////////去掉这一行的话就没问题,加上就有问题
    if(ArcList->count()>4)
    {
        node4 = ArcList->at(4)->BeginNode;
        node5 = node1;
    }
………………
………………
}
}

只是程序中的一小部分稍微改变以后做得一个测试,但是这块儿就让我很迷惑了。如果新开辟一个变量NODE* x,则能正常跑,而如果开辟了的话,ArcList->at(4)的值就发生变化了,变成一个空指针了。这里边的node4的值也同样变了,但node1 node2 node3 node5的值都和ArcList变化之前的值一样。异常的时候node1 node2 node3 node4 node5的值如图片所示。
多谢指教!!
离线红调

只看该作者 2楼 发表于: 2014-06-09
回 dbzhang800 的帖子
dbzhang800:一般来说,
这些诡异问题,通常是你其他地方的代码有问题造成的,不妨自己认真调试调试程序。除非你能给出一个简短的,可以重新问题的,完整的代码,不然不要轻易怀疑是Qt bug造成的问题。 (2014-06-09 20:55) 

嗯,我也觉得是。
太费劲了。
谢谢。
离线dbzhang800

只看该作者 1楼 发表于: 2014-06-09
一般来说,

这些诡异问题,通常是你其他地方的代码有问题造成的,不妨自己认真调试调试程序。除非你能给出一个简短的,可以重新问题的,完整的代码,不然不要轻易怀疑是Qt bug造成的问题。
快速回复
限100 字节
 
上一个 下一个