&(*_shmItr) == NULL
Ceci est une question tout à fait noob, mais je suis un novice à C++.Est-ce invalide & (* _ shmItr) == NULL où _shmItr est un itérateur List
dans GCC 3.1.2 lorsque vous vérifiez _shmItr == NULL est parfaitement bien, mais comme GCC 4.2.2 c'est une erreur. J'ai fait google à propos de l'erreur. ils disent que le déréférencement et le référencement permettront de résoudre le problème. et ça l'a fait. J'étais heureux. Mais comme j'en apprends plus sur l'itérateur. Je pense peut-être que cela passe l'erreur, mais pas valide et peut donner un problème d'exécution. Quelle est votre suggestion me ...
Je l'ai fait peu de recherche et a constaté que
_shmItr == _shmItr.end()
sert également dans le même but et plus correct. Corrigez-moi si j'ai tort, s'il-vous plait.
Essentiellement, nous essayons de vérifier si _shmItr contient quelque chose de non valide ou non. avant de faire une opération.
Merci d'avance.
Voici le morceau de code
_shpmtItr = _shpmtList.begin();
if(_shpmtItr == NULL)
{
eaLogMsg << setid("APP_FAILED")
<< "_shpmtItr is NULL in some::few()"
<< endl;
return APP_FAILURE;
}
Cela peut vous dire le scénario. static
Les itérateurs sont un concept différent, plus général que les pointeurs. Un itérateur peut être implémenté comme un pointeur, mais vous ne devriez jamais vous en fier. –