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; }
-
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
-
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.