integer to char*



  • Der Fehler ist : incompatible types when assigning to type char*[3] from type char **.



  • #include <stdio.h>
    #include <stdlib.h>
    int main(  ){
      char *argv[] = { "-gridfile", "ocean1.grd", NULL };
    
      funktionsname(char *argv[]);
    
      return 0;      
    }
    


  • Der Funktionsaufruf ist natürlich Quatsch.

    int main(  ){
      char *argv[] = { "-gridfile", "ocean1.grd", NULL };
    
      funktionsname(argv); // geändert
    
      return 0;      
    }
    

  • Mod

    DirkB schrieb:

    char *argv[] = { "-gridfile", "ocean1.grd", NULL };
     
      funktionsname(argv);
    

    FTFY

    edit: Da hast du es selbst schneller gemerkt als ich antworten konnte.



  • Nochmal zur eigentlichen Frage

    beginnerrfrage schrieb:

    argv*[3]; // Wie soll ich definieren?

    Es steht doch schon alles in deinem 1. Beispiel. Allerdings fehlt da die Arraylänge.

    char *argv[3];
    


  • Vielen Dank @Dirk

    Follgende Kode ist erfollgreich audführbar.

    #include <stdio.h>
    #include <stdlib.h>
    int main(  ){
           argv*[3]; 
           argv[0] = "-gridfile";
           argv[1] = "ocean1.grd";
           argv[2] = NULL;
           funktionsname(argv);
    }
    

    Ich will eigentlich nicht dass arv[2] auf NULL zeigt. Es muss eine int-variable "count" zeigen.

    Follgende Vorschläge sind falsch:

    int count=1; 
    arv[2]=count;
    
    int count=1; 
    itoa(count, argv[2], 10)
    
    int count=1;
    char a = (char) count;  
    arv[2]= a;
    

    Kann jemand bitte mir helfen??????



  • Sorry wegen syntaxfehlern 🙂


  • Mod

    Die Anforderung macht keinen Sinn. Ein char* kann nicht auf einen Integer zeigen (Ok, technisch gesehen schon, aber was man damit machen kann, nützt herzlich wenig). Und was soll das überhaupt werden? Wenn ich mal von den Namen her schließen darf, dass der Wert auf den gezeigt werden soll die Anzahl der Elemente angibt, wie soll die Funktion dann wissen, an welcher dieser Wert steht, wenn sie die Anzahl der Elemente noch nicht kennt? Wer hat sich den Mist ausgedacht? Bist du sicher, dass du die Anforderungen richtig verstanden hast?



  • beginnerrfrage schrieb:

    Follgende Kode ist erfollgreich audführbar.

    Den falschen Code der vorher nicht funktionierte
    

    Ein NULL-Zeiger am Ende eines Pointerarrays ist in C die übliche Art und Weise das Ende des Arrays zu kennzeichnen.

    Du kannst doch auch

    argv[2] = "1";
    

    schreiben.

    Wenn count variable sein soll:

    char s_count[20];             // hier erhälst du den Platz für den String
    int count = 1;                // oder anderer Wert
    sprintf(s_count,"%d",count);  // "umwandeln" von count in einen String
    argv[2] = s_count;            // argv[2] zeigt jetzt auf s_count
    

    in funktionsname() musst du dann atoi() nehmen um an den Zahlenwert zu kommen.

    Damit das Ende dann auch markiert ist, mach auch

    char *argv[4];	
    argv[3] =  NULL;
    


  • Danke DirkB

    Du bist echt hammer. Jetzt hat es endlich funktioniert.


Anmelden zum Antworten