[ARGV] Argument Vektor auslesen && in Array speichern
-
Ich versuche den Argument Vektor von main Auszulesen und in einen Array zu speichern.
ich habs so versucht:
char *bla; bla = (char *)malloc(sizeof(char)* argc); for(i=0; i < argc; i++) { *bla = argv[i]; } printf("%s\n",bla[1]);
Also ich will, dass "bla[1]" mit den wert mit dem ersten argument wiedergibt
bla[2] das zweite ...
-
Habs nach dem 40 Versuch selber hinbekommen:
ARGV ist doch schon ein Doppelpointer ... daher muss man einen dreifach pointer benutzen ...
so siehts aus:
char **options[argc]; for(i=0; i<argc ; i++) options[i] = &argv[i]; printf("%s",*options[1]);
GIBTS es vielleicht eine bessere lösung ????
-
die argumente sind doch schon in einem array, nämlich in argv gespeichert. wozu nochmal speichern?
ansonsten geht das im prinzip so:
char** arr = malloc ( argc * sizeof( char*) ); // Die folgenden Zeilen als Schleife schreiben: arr[0] = malloc ( strlen ( argv[0] ) + 1 ); strcpy ( arr[0], argv[0] ); arr[1] = malloc ( strlen ( argv[1] ) + 1 ); strcpy ( arr[1], argv[1] );
... usw.
Die Speicheranforderung für die einzelnen Arrayelemente am besten in eine Schleife packen, zum besseren Verständnis habe ich es ohne Schleife geschrieben.
MFG