Я работаю над проблемой, когда у меня есть «главный массив» указателей на typedef struct programs
. Для каждого элемента/структуры, которую я создаю, я выделяю память переменной programs* temp
и сохраняю ее в массиве programs* master_array[x]
.C: Два разных массива, указывающих на ту же структуру
Однако моя проблема требует, чтобы я обрабатывал ошибки в master_array
, где, если program
переходит в «заблокированное» состояние, тогда мне нужно управлять этими процессами отдельно.
Я хочу создать второй массив под названием programs* blocked_array[y]
и хранить программы, которые там блокируются. В этом случае я могу иметь два массива, указывающих на то же самое program
. Однако, когда я закончил с обработкой program
в заблокированном, как я могу освободить его/разыграть указатель blocked_array[y]
на то, что program
не влияет на указатель master_array[x]
?
ли я создать пустой program temp
, не выделяет память для этой temp
программы и сделать blocked_array[y]
точку в этой temp
программы эффективно, выплескивать blocked_array
?
Будет ли это создавать какие-то непреднамеренные последствия или делает это, чтобы остановить заблокированный массив от указаний на него, сохраняя указатель master_array[x]
? Любые мысли помогут, спасибо.
Имеют три отдельных списка: 'running',' runnable', 'blocked', где каждая программа может находиться только в * одном * списках одновременно. – EOF
Вы можете добавить поле 'bool isBlocked;' в ваши 'struct programs'. –