Zum Inhalt springen

Löschen eines Wertes in einem Array


julia123

Empfohlene Beiträge

Hallo allerseits,

ich bin noch Programmieranfängerin und hab ein (vermutlich) einfaches Problem.

Ich möchste aus einem Array z.B. array[3]={1,2,3} den wert 2 löschen.

Also array[1]=1; array[2]= "hier soll leer sein", array[3]=3.

Hab gegoogelt und bin darauf gestoßen das man array[2]=NULL schreiben kann,

aber löscht das einen Eintrag wirklich oder wird der dann nur durch 0 ersetzt?

Schonmal danke im vorraus.

Grüße,

Julia

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstmal beginnt die Nummerierung von Array-Elementen mit der 0. Folglich hat der 2. Eintrag den Index 1.

Einem Array-Eintrag die NULL-Pointer-Konstante zuzuweisen, sofern der Typ der Array-Elemente dies überhaupt zulässt, bringt Dich nicht weiter. Dadurch verschwindet kein Eintrag, sondern nur der Inhalt wird verändert.

Wenn häufig Elemente einer Liste mittendrin gelöscht oder hinzugefügt werden sollen, sind Arrays ohnehin keine optimale Wahl.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gibt es nun aber "leere" felder in einem array, kann man einen wert wirklich löschen?
Nicht im allgemeinen Fall. Falls du in deinem Array Zeiger hast, kannst du Nullzeiger verwenden, um leere Felder zu kennzeichnen. Ansonsten haben Variablen in C und C++ immer einen Wert, es sei denn, du selbst interpretierst einen bestimmten Wert als "leer". Dann darf dieser Wert aber nicht als gültiger, nicht-leerer Wert auftauchen.

Wenn dein Array dynamisch angelegt ist (malloc oder new), kannst du Elemente entfernen, indem du die verbliebenen Werte in ein neues Array mit verringerter Größe umkopierst.

Und was wäre die Alternative zu arrays?
Falls du C++ benutzt, bietet die Standardbibliothek mehrere Containerklassen, die alle die Operation des Entfernens einzelner Elemente unterstützen. Die Unterschiede zwischen den Containern liegen in den Zeitkomplexitäten der einzelnen Operationen. Wenn du beispielweise häufig einzelne Elemente irgendwo in der Mitte einfügen oder entfernen musst, würde sich std::list anbieten. Zugriff über Indexoperator geht allerdings bei std::list nicht.

Wenn du C benutzt, kannst du solche Datenstrukturen natürlich auch benutzen, du müsstest sie nur selbst implementieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...