neue elemente in einer Zeiger auf zeiger einfügen.
-
servus!
mal frage: ich habe ein gegebene zeiger auf zeiger(char **array) und ich möchte dazu eine neue elemente (char*elt) einfügen .
Ist es überhaupt möglich? wie geht es?
danke
-
Woher hast du denn den char** bekommen? Wenn du dort noch genug Platz zur Verfügung hast (leere Felder am Ende des Arrays), könntest du das erste leere Feld mit dem neuen Eintrag überschreiben. Wenn du das Array mit malloc() angelegt hat, hilft dir eventuell realloc(), um den nötigen Platz zu schaffen.
-
Hi!
die elemente (char *elt) habe ich mit malloc angelegt, jetzt möchte ich alle diese elemente in ein array (spricht char **)speichert, Am anfang ist diese leer:char **array = NULL;
char *this = malloc(sizeof(char));thx
-
Da mußt du das Array halt auch mit malloc() anlegen - und dir merken, für wieviele char*'s du wirklich Speicher zur Verfügung hast.
Ansonsten ist sizeof(char) per Definition gleich 1 - und um Platz für einen char zu bekommen, lohnt sich malloc() nicht wirklich
PS: Ist zwar kein C, aber eventuell kommst du mit vector<string> weiter
-
Hi,
diese topic ist etwas ähnlich! Vielleicht hilft dir weiter: http://www.c-plusplus.net/forum/viewtopic-var-t-is-182335.html
-
Ansonsten könnte ich vielleicht auch noch diesen FAQ Eintrag empfehlen:
http://www.c-plusplus.net/forum/viewtopic.php?t=39339
-
Hi!
danke für eure Hilfe ich habe dann folgende code geschrieben:
char **array = NULL;
char *elt;
int b = 0;elt = malloc(sizeof(char *)); array = malloc(sizeof(char *)); array = realloc(array,++b*sizeof(char*)); array[b] = elt;
trotzdem geht es nicht!
was mache ich falsch ?
danke
-
Das sieht nach einem tpyischen eins-daneben-Fehler aus - b gibt offenbar die Anzahl der Einträge in deinem Array an, der Wert 'array[b]' liegt darum hinter dem Array (die Indizes in C-Arrays beginnen mit 0).
-
[quote="toror"]
char *elt;
int b = 0;elt = malloc(sizeof(char *));
Muss das nicht
elt = malloc(sizeof(char ));
heissen?