&(*_shmItr) == NULL
这是相当noob问题,但是,我新手到C++。这是无效&(* _ shmItr)== NULL其中_shmItr是一个List迭代器
在GCC 3.1.2当你检查_shmItr == NULL是完全正常的,但作为GCC 4.2.2 这是一个错误。我做了谷歌关于错误。他们表示解除引用和再次引用将解决问题。它做到了。当时我很开心。但是,我正在学习更多关于迭代器的知识。我觉得可能是这个传递错误,但不是有效的,会给运行时带来问题。 什么是你的建议,我...
我做了一些调查,发现
_shmItr == _shmItr.end()
也有异曲同工之妙,更正确。如果我错了,请纠正我。
基本上我们正在试图检查_shmItr是否持有无效的东西。在做任何操作之前。
在此先感谢。
这里是代码块
_shpmtItr = _shpmtList.begin();
if(_shpmtItr == NULL)
{
eaLogMsg << setid("APP_FAILED")
<< "_shpmtItr is NULL in some::few()"
<< endl;
return APP_FAILURE;
}
这可以告诉你的情况。 static
迭代器是一个不同于指针的更一般的概念。一个迭代器可以作为一个指针来实现,但是你不应该依赖这个。 – 2010-11-22 14:16:08