C++ C++;呼叫两次会导致访问冲突

C++ C++;呼叫两次会导致访问冲突,c++,access-violation,C++,Access Violation,第一次尝试调用->getValue()看起来不错,但是下面的一行(while循环的开头)给出了getValue方法内部的错误“访问冲突” if(first != 0){ listElement *that = first; cout << "add: " << that->getValue() << " | " << value << endl; while(that->getValue()

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

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

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

  while(that->getValue() < value) {..}
}
if(第一个!=0){
listElement*它=第一个;

显然,在这个代码中

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

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

显而易见的解释是在这段代码中

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

如果您包含了所有的代码,这会有所帮助,因为代码的关键位似乎位于
{..}
block!

信息不足:在
getValue
中有什么?while
循环体中发生了什么?需要所有的代码。p.s.如果你说的是真的,
while
是你不使用智能指针的唯一原因?我还原了你的问题,因为你的编辑完全改变了它。我们不需要请查看更正后的代码。如果您在原始的、有缺陷的代码中进行了编辑,那就可以了。但事实上,您的编辑只是使注释和答案看起来不一致。信息不足:在
getValue
中有什么内容?在
循环体中发生了什么?需要所有的代码。如果您说的是真的,请注意
while
是您不使用智能指针的唯一原因吗?我还原了您的问题,因为您的编辑完全改变了它。我们不需要查看更正的代码。如果您使用原始的有缺陷的代码进行编辑,那就可以了。但实际上,您的编辑只会使注释和答案看起来不一致。嘿,您能借用我吗e你的水晶球?@Vlad在我们看到的代码中,
liselement
first
while
,链接列表迭代的所有特征。好的,你是对的,我在while循环中调用next()。我通过设置“first”解决了这个问题变量的下一个指针指向0。但我仍然不明白为什么它会导致while循环的头部出错,这对我来说显然是一个do循环。但在这种情况下,while循环的头部应该在next被调用之前解决。嘿,你能借给我你的水晶球吗?@Vlad在我们看到的代码中,
liselement
first
while
,链表迭代的所有特征。好的,你说得对,我在while循环中调用next()。我通过设置“first”解决了这个问题变量的下一个指针指向0。但我仍然不明白为什么它会导致while循环头中出现错误,这对我来说显然是一个do循环。但是在这种情况下,while循环头应该在调用next之前解决