C++指针赋值语句似乎不起作用/做任何事情

Ell*_*lly 4 c++ pointers variable-assignment

我在模板类(一个简单的FIFO队列)中有以下方法,而在GDB调试时,我发现将指针'previous'重新分配给'current'的语句似乎什么也没做.执行此语句时,之前的启动为NULL,当前不为NULL,但之前保持为NULL.以前有人见过这样的事吗?

inline int search(QueueEntry<T> *current,QueueEntry<T> *previous, unsigned long long t)
{
  while(current && !(current->getItem()->equals(t)))
  {
    previous = current; //**this line doesn't seem to work**
    current = current->getNext();
  }
  if(current)
    return 1;
  return 0;    
}
Run Code Online (Sandbox Code Playgroud)

Fre*_*Foo 6

分配由编译器优化,因为它对函数的行为没有任何影响.你previous每次都通过循环重新分配,但不做任何其他事情.

该错误(如果有的话)在函数的其余部分中.