Итераторы не являются указателями. Если вы хотите инициализировать их ненулевым значением, используйте list :: end (). Тот факт, что vector<T>::iterator
иногда реализуется с помощью указателя, является деталью реализации, от которой вы не можете зависеть.
Если вы хотите присвоить NULL значение в том месте, к которому обращается итератор, вы должны сначала разыменовать его:
std::list<Memory *> aList;
aList.push_back(new Memory())
std::list<Memory*>::iterator listIter = aList.begin();
delete *listIter;
*listIter = NULL;
Инициализация с помощью list :: end ():
std::list<Memory *> aList;
std::list<Memory*>::iterator listIter = aList.end();