C ++调用两次导致访问冲突

时间:2012-04-22 13:07:56

标签: c++ access-violation

第一次尝试调用 - > getValue()看起来不错,但只是下面的行(while循环的头部)在getValue方法中给出了错误“访问冲突”。

if(first != 0){
  listElement *that = first;    

  cout << "add: " <<    that->getValue() << " | " << value  << endl; 

  while(that->getValue() < value) {..}
}

我可以在通话过程中编辑值吗? get方法只包含“返回值”....

1 个答案:

答案 0 :(得分:4)

明显的解释是在这段代码中

while(that->getValue() < value) {..}

{..}内进行that = that->next;并将that设置为空指针。

您需要在that != NULL循环中为while添加测试,以防止在未找到符合搜索条件的项目的情况下到达列表末尾。

while(that != NULL && that->getValue() < value)

如果您包含了所有代码,那会有所帮助,因为似乎代码的关键位在{..}块中!