Я написал следующую функцию, она принимает «блок» в качестве аргумента, ищет «блок» в списке блоков «lru». Здесь «block» - это экземпляр класса «Block». Ниже приводится декларация «НДИ»:Функция пользовательского поиска не работает должным образом
list<Block> lru;
И следующий моя функция поиска:
int LRU::searchLRU(Block block)
{
if (lru.size() == 0)
{
lru.push_back(block);
return 1;
}
list<Block>::iterator i;
for (i = lru.begin(); i != lru.end(); i++)
{
if (i->get_set() == block.get_set() && i->get_index() == block.get_index())
{
lru.push_back(block);
lru.erase(i);
return 2;
}
}
if (lru.size() == size)
{
lru.pop_front();
lru.push_back(block);
return 3;
}
}
Но проблема иногда функция возвращает «0». И в результате моя общая программа работает неправильно. Я чувствую, что справился со всеми делами.
Может ли кто-нибудь указать на ошибку или почему функция возвращает «0».
Компилятор должен был предоставить вам что-то в следующих строках: «* warning: no return statement в функции, возвращающей не-void *» Если вы не отключили предупреждения. –