&(*_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