Что я делаю не так в этой реализации NMRU?

#c #caching

#c #кэширование

Вопрос:

Я пытаюсь реализовать NMRU в этом коде, я считаю, что я на 80% продвинулся туда, мне просто нужна помощь, чтобы выяснить, что еще нужно реализовать. Я знаю, что значение случайного пути должно быть между 0 и assoc, и мне нужно убедиться, что значение _repl != 0 . Цикл for в моем коде устарел в том виде, в котором он у меня есть прямо сейчас, и я немного не уверен, как это исправить.

 //use rand function to choose smallest value that IS NOT 0
//near (NMRU)
int Replace(SET_t* tar, LARGEINT tag, int assoc) {
    srand(time(NULL)); //initialization
    int lruWay = rand() % assoc; //returns a random integer between 0 and RAND_MAX
    for (int way != 0; way < assoc; way  )
    if (tar->_repl[way] != 0 ){ //dont know if I need this
        break; //break loop
    }
    return lruWay;
 

Комментарии:

1. это реальный код? for (int way != 0; это опечатка

2. srand(time(NULL)); должно вызываться один раз в начале main . Вызов его здесь приведет к странным, а не случайным результатам.

3. Также цикл ничего не делает (не имеет видимых эффектов), поэтому компилятор удалит его.