[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


Anmelden zum Antworten