Einem bestehenden array Werte anhängen

Dysprosium

Dysprosium

Grünschnabel
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
 
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?
 
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.
 
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...
 
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.
 
OK, vielen Dank für die Infos, dann werde ich mich mal an den Zeigern und Pointern probieren.
 
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
 
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.
 
@noreaga
Du bist etwas spät dran ^^
Steht doch schon in meiner Post :p
 

Ähnliche Themen

Samba 4 aus repository über lokale Source-Installation installieren?

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

Port Forwarding mit iptables

Unix Webserver mit HTML Seite erstellen

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

Zurück
Oben