Von Dynamischen Array in ein Zweites Dynamisches Array schreiben!
-
Hallo!!
Folgendes Problem:
Ich will von einen Dynamischen Array(im Beispielcode => para) wo ich schon einen String eingelesen hab teile davon in ein zweites Array schreiben.Folgender Code:
char *var1 = malloc(sizeof(char)); while(g < 4) { var1[g] = para[g]; var1 = realloc(var1, g+2); g++; } var1[g+1] = '\0';
Wäre super wenn mir da jemand weiterhlefen könnte!!
mfg
-
g = 0 ?
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char para[5]; char *var1 = malloc(sizeof(char)); int g = 0; strcpy(para,"Test"); while(g < 4) { var1[g] = para[g]; var1 = realloc(var1, g+2); g++; } var1[g+1] = '\0'; printf("%s\n", var1); return 0; }
-
Hallo danke erstmal für die schnelle Antwort!
Aber leider hat mir das nichts weitergeholfen das g = 0 ist ist schon klar habs beim code schnipsel vergessen!
Das Problem ist nur wenn ich die strings von para zu var1 kopiere ist immer der letzte buchstabe irgendeinzeichen(keine Ahnung woher) und das '\0' wird garnicht reigeschrieben!!
Woran kann das liegen??
-
servus
habs auch mal probiert und bei mir gehts. allerdings hab ich den realloc weggelassen da ich den sinn an dieser stelle von realloc net verstehe. Kannst ja gleich so wie ich den passenden speicher reservieren.
#include <stdio.h> #include <string.h> #include <stdlib.h> int main() { char *var1; char var2[] = "das ist ein test"; int g=0; var1 = (char*)malloc(5*sizeof(char)); while(g<4) { var1[g]=var2[g]; g++; } var1[g]='\0'; printf("teilstring: %s\n",var1); free (var1); return 0; }
Also bei der version gibt er mir dann "das" aus.
So Long
-
hat wohl daran gelegen: var1[g+1] = '\0';
halt eine position zu weit