ich auf einem Problem arbeite, wo ich ein „Master-Array“ von Zeigern auf ein typedef struct programs
habe. Für jedes Element/I-Struktur, die zu erstellen, I zuzuteilen Speicher auf eine variable programs* temp
und speichern sie in einem Array programs* master_array[x]
.C: Zwei verschiedene Arrays Unter Hinweis auf die gleiche Struct
Allerdings erfordert mein Problem mich, Fehler in der master_array
zu behandeln, wo, wenn ein program
in einen "blockierten" Zustand geht, dann muss ich diese (jene) Prozesse separat verwalten.
Ich möchte ein zweites Array programs* blocked_array[y]
und Speichern von Programmen aufgerufen schaffen, die in dort blockiert werden. In diesem Fall kann ich zwei Arrays haben, die auf denselben program
zeigen. Allerdings, wenn ich mit dem Umgang mit einem program
in blockierter abgeschlossen, wie kann ich es freigeben/dereferenzieren die blocked_array[y]
‚s Zeiger auf diese program
ohne die master_array[x]
auswirken‘ s Zeiger?
erstelle ich eine leeres program temp
, weist keinen Speicher zu diesem temp
Programm und machen den blocked_array[y]
Punkt zu diesem temp
Programm effektiv, leeren blocked_array
aus?
Würde dies eine unbeabsichtigte Konsequenz erzeugen oder würde dadurch das geblockte Array daran gehindert, darauf zu zeigen, während der Zeiger master_array[x]
beibehalten wird? Irgendwelche Gedanken würden helfen, danke.
haben drei separate Listen: 'running',' runnable', 'blocked', wo jedes Programm nur in * ein * der Listen zur gleichen Zeit sein kann. – EOF
Sie können ein 'bool isBlocked;' - Feld in Ihren 'struct programs' hinzufügen. –