D
bloodshower schrieb:
Es liegt nun ein mit NULL terminiertes Array von Zeigern des Typs 'cd_t' vor. Soweit ist alles klar.
Nein, es liegt ein Array vor, das keine gekennzeichneten Endmarkierung hat. (Cast ist überflüssig, Fehlerüberprüfung von malloc fehlt).
Nun möchte ich aber einen Zeiger aus diesem Array löschen. Wie läßt sich das am besten anstellen? Dazu, so meine Gedanken, müßte man zunächst titel, artist usw. mit free() freigeben, dann alle nach cd[gesuchte_cd] folgenden cd-Zeiger um eine Position versetzen und schließlich mit realloc das Array um eins kürzen.
Ich werde nicht so recht schlau aus dem Satz. Du kannst natürlich im Stile eines Bubbelsortierers den zu löschenden Zeiger ganz nach hinten manövrieren (oder, wenn Dir die Reihenfolge egal ist, einfach mit dem letzten vertauschen), und die Einzelelemente löschen. Ob realloc dann wirklich was verkürzt, oder gar nichts macht, kannst Du mit genormten Mitteln wohl eh nicht herausfinden.