Dynamisch angelegtes Array

Hallo,

möchte so wie es VB mit
Code:
redim preserve ...
macht unter C programmieren geht das so ohne weiteres?
Wenn ein neuer Index hinzukommt einfach diesen erhöhen
und die Werte einfügen.
Wie sollte ich das am besten anstellen auch in bezug auf
die performance?
Hat jemand von euch eine Idee?

Danke
 
Wenn du unter C++ arbeitest, klingt das nach der perfekten Gelegenheit für einen std::vector.

Wenn du unter C arbeitest, musst du das selber machen. Du kannst dann mit alloc/realloc/free arbeiten.
 
was willste denn machen?
wenn es nur Zeichenketten sind dann kannste doch auch CStringArray benutzen...da gibt es eine Methode Add() mit der du Strings hinzufügen kannst...
 
Wie müste ich den speicher alocieren wenn es stätig das Feld vergrößert?
Merkt sich das Feld dann alle vorherigen Werte?
Über ein kleinen Code wäre ich sehr dankbar.

LG KaiAusDerKiste2000
 
wenn du eine Struktur hast kannste folgender maßen den speicher alocieren

CStrukturname* struktur=new CStrukturname[anzahl];

da haste auch noch einen Zeiger auf das Objekt...is noch besser...aber wenn du eine eigene Struktur erweitern willst nach für nach musst du eine geeignete Klasse suchen...CArray vielleicht...weiß nicht genau ob es das gibt...musste mal bei dem MSDNAA Hilfe nachschauen...oder selber schrieben...ich schau gleich mal nach...irgendwo müsste ich sowas haben...
 
ist glaueb ich sowieso besser, wenn du das mit einer eigenen Klasse machtst...is allerdings nicht ganz leicht...haste schon mit Klassen gearbeitet?
 
Danke spaxx86 für deinen Tip.
Wie verhält sich das Feld wenn ich

Code:
index=10;
CStrukturname* struktur=new CStrukturname[index];
index++;
*struktur=new CStrukturname[index];

zur laufzeit weitere Einträge in das Feld haben möchte
mit den alten Einträgen?
 
Das schon habe (leider) in den letzten Jahren zu viel mit VB
gemacht. Habe mich jetzt aber entschlossen für mein Projekt
die DLL in C/C++ zu schreiben, was natürlich jetzt ein bisl
schwerer fällt weil VB verwöhnt.
Aber wenn du ein kleines Bsp für mich hättest wäre das
Klasse, reinfitzen ist dann kein Problem. Ist wie mit
Fahradfahren :) .
 
Also doch C++, dann mal schön den std::vector benutzen:

Code:
#include <vector>

std::vector<CMeineKlasse>       vectKlassen;


// eine Klasse anhängen
vectKlassen.push_back( CMeineKlasse() );

// eine bestimmte Klasse ansprechen
vectKlassen[x] = 
vectKlassen[x].Member();

// Anzahl der Einträge abfragen
vectKlassen.size();

Wenn das nicht einfach ist, kein Aufräumen, alles automatisch.
 
Zurück