Kommandozeilenargumente in dynamisches char-Array



  • Also ich hab folgendes:

    int *a;
    char *b;
    
    a = (int *)malloc(aa*sizeof(int));
    b = (char *)malloc(bb*sizeof(char));
    
    for(i = 1, j = 0; i < argc; i+=2, j++) a[j] = atoi(argv[i]);
    for(i = 2, j = 0; i < argc; i+=2, j++) b[j] = argv[i];
    

    Das Problem befindet sich in der zweiten for-Schleife.
    Die erste Schleife funktioniert.

    Hier die Warnung vom Compiler: warning: assignment makes integer from pointer without a cast

    Wenn ich bei der zweiten Schleife ebenfalls mit atoi konvertiere, dann
    kompiliert er zwar ohne Warnung, funktionieren tuts aber trotzdem nicht.

    Thx



  • Schauen wir's uns mal an:

    int main(int argc, char **argv) {
      return 0;
    };
    

    argv ist ne sog. Stringtabelle (eigentl. Pointer auf Pointer, aber wurscht).
    Deshalb solltest du dein zweites Array ebenfalls so deklarieren. Allerdings versteh ich nicht ganz wieso du die cmd-args in ein weiters Array packen willst. 😕


Anmelden zum Antworten