Прежде всего, list
в этом контексте - это имя переменной, а не ключевое слово.
И нет ничего плохого в этом коде l oop, при условии, что структура Employee
на самом деле имеет член isEmpty
, которому вы можете назначить 1
.
Он просто проходит через предоставленный массив (называемый list
), по очереди устанавливая каждый элемент как пустой.
Однако ваша манипуляция с len
кажется немного неправильной, я подозреваю, что она не изменит последний элемент в списке, поскольку вы уменьшаете его перед запуском l oop.
Я подозреваю, что более каноническая версия (включая это исправление) будет выглядеть примерно так:
int initEmployees(Employee* list, int len) {
// Error if no elements in list.
if (len < 1) return -1;
// Mark each entry as empty.
for (int i = 0 ; i < len ; i++) {
list[i].isEmpty = 1;
}
// Everything is okay.
return 0;
}
Но я также сомневаюсь, что возникает ошибка при нулевом размере списка. Мне кажется, что совершенно нормально изменять все элементы пустого списка - это просто означает бездействие.
И, если вы используете беззнаковые значения для размеров вещей (например, size_t
), ваш " отрицательная "проблема уходит.