access violation
От: Аноним  
Дата: 04.08.05 12:13
Оценка:
Есть дека, в которой хранятся указатели на стуктуры.


struct LItem
{
  
};

deque <LItem*> deq;



где то в программе


LItem* li = new LItem;
...
deq.push_back (li); // запоминаю копию указателя на структуру



Потом по таймеру происходит следуюее

// берем ссылку на первый элемент
LItem* item = qItemsToUpdate.front();

// проводим с ним какие то действия

// удаляем первый элемент (не саму структуру удаляем а просто указатель на нее) Сама структура используется в другом месте
qItemsToUpdate.pop_front();


// если еще есть элементы
if (!qItemsToUpdate.empty())
{
// берем опять первый элемент
item = qItemsToUpdate.front();
if (item)
{
UINT iNewTime = item->dt.wMilliseconds — d.wMilliseconds;
uiTimer = SetTimer (100, iNewTime, NULL);
}
}
else
{
KillTimer (100);
uiTimer = 0;
}

в выделенном месте вылетает аксес виолейшн (!). Смотрю на дебаге и вижу что переменная item имеет какой то адрес, но все поля структуры имеют значение Expression can not be evaluated.

из за чего это может быть?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.