zweidimentionales Array mit unbekannter Größe???
-
Hi!
Ich muß ein Array [][5] ausfüllen und da ich die Anzahl der Strings womit das Array ausgefüllt wird nicht weiß, brauche ich ein Array[][5] mit unbekanter Größe.
Weiß jemand vielleicht wie ich es machen kann.
ich bedanke mich im voraus
-
Du könntest mit realloc bei Bedarf dein 2-dimensinales array dynamisch anpassen.
-
#include <stdio.h> #include <stdlib.h> int main(int argc, char* argv[]) { char *ptr; int i=2; ptr=malloc(1); if (ptr==NULL) return 1; while (1) { printf("Wert: "); scanf("%c", ptr); while(getchar()!='\n'); printf("\n"); ptr=realloc(ptr,i++); } return 0; }
so siehts eindimensional aus!
-
free() nicht vergessen
-
semmelrogge schrieb:
#include <stdio.h> #include <stdlib.h> int main(int argc, char* argv[]) { char *ptr; int i=2; ptr=malloc(1); if (ptr==NULL) return 1; while (1) { printf("Wert: "); scanf("%c", ptr); while(getchar()!='\n'); printf("\n"); ptr=realloc(ptr,i++); } return 0; }
so siehts eindimensional aus!
deine Benutzung von realloc ist furchtbar. Bitt sowas nie machen, sondern so
char* tmp, *ptr; ... tmp = realloc(ptr, ++i); if(!tmp) { /* reagiere auf den Fehler */ free(ptr); /* wenn Funktion verlassen werden muss */ } if(ptr != tmp) ptr = tmp; .... /* ganz am Ende *7 free(ptr);