Einem bestehenden array Werte anhängen

Dysprosium

Grünschnabel
Beiträge
6
Hallo,

ich würde gerne in C ein array deklariern mit erst einmal 0 Parametern und dem Array dann nach und nach Parameter hinzufügen. Erinnere mich glaube ich dass das in Python, glaube ich, möglich war mit push. Gibt es in C auch so einen Befehl?

Danke im Vorraus
 

Dysprosium

Grünschnabel
Beiträge
6
Danke für die Antwort. Leider bin ich noch relativ am Anfang mit meinen C-Kenntnissen. Zeiger habe ich mir nähmlich noch nicht angeguckt. Aber bei den komplexen Lösungen, die da vorgeschlagen werden vermute ich mal, dass es keine so einfachen Alternativen gibt wie in Python, oder?
 

sim4000

Lebende Foren Legende
Beiträge
1.933
Man kann kein Array vergrößern. Die einzige Möglichkeit die noch wäre ist das mit einer Schleife zu kopieren.
Code:
array = new int[10];
/* Array füllen bla */
array_new = new int[12];
for(int i=0; i<array.length; i++) {
   array_new[i] = array[i];
}
/* Array weiter füllen bla */
So ungefair. Ist aus dem Bauch raus geschrieben. Kann also nicht sagen, obs lüppt.
 

daboss

Kaiser
Beiträge
1.297
Wenn du dynamisch ein "Array" "vergrössern" willst, wirst du um Zeiger nicht herumkommen. Arraygrößen an sich müssen in C immer zur kompilezeit bekannt sein...
 

larry

Tripel-As
Beiträge
159
Bei Python stecken hinter einem Array andere Datenstrukturen. Der Code von sim wäre eine Möglichkeit, allerdings bei großen Arrays sehr unperformant. Zum Lernen auf jeden Fall hilfreich. Wenn du bei Pointer angelangt bist, stellen verkettete Listen eine gute Möglichkeit dar. So kannst du dynamisch Listenelemente entfernen oder hinzufügen.
 

T-Virus

Free Software Fan :p
Beiträge
107
Man kann kein Array vergrößern. Die einzige Möglichkeit die noch wäre ist das mit einer Schleife zu kopieren.
Code:
array = new int[10];
/* Array füllen bla */
array_new = new int[12];
for(int i=0; i<array.length; i++) {
   array_new[i] = array[i];
}
/* Array weiter füllen bla */
So ungefair. Ist aus dem Bauch raus geschrieben. Kann also nicht sagen, obs lüppt.

Das sieht auch mehr nach C++ aus ;)
In C nutzt mal malloc :)
Außerdem solltest du noch delete setzen, damit der Heap wieder freigegeben wird :)

EDIT
Würde auch zu C++ raten, wenn du auch C++ machen kannst.
Dort kannst du mit Vector wirklich gut arbeiten.

T-Virus
 

noreaga

Eroberer
Beiträge
64
ich dürfte dann noch auf die STL verweisen ;)
Da gibts zwar keine Arrays im eigentlichen Sinne, aber z.B. Vector lässt sich mit python/php ähnlichen Funktionsaufrufen gut bedienen.
 

Ähnliche Themen

Seit Ubuntu 18.04.5 LTS vermisse ich im Ordnermenü die Option Erstellungsdatum

Unix Webserver mit HTML Seite erstellen

Samba 4 Schema erweitern per LDIF - Server is unwilling to perform (53)

[Gelöst] Suchen und ersetzen mit Hilfe mehrerer Parameter

Werte aus Dateien lesen

Oben