integer to char*
-
Hallo Zusammen,
Ich habe mehrmals gegooglet aber konnte leider nichts gefunden.
int count; char *arg[8]; arg = (char)count;
Könnt ihr bitte kurz helfen.
Danke im Voraus,
-
Ich bekomme follgende fehler:
assignment makes integer form pinter without a cast
-
itoa
-
Ich will "count" nur auf den esten ersten char speichern.
int count; char *arg[8]; arg[0] = (char)count;
-
Es kommt ganz drauf an, was du willst. Willst du einfach nur einen int-Wert in einen numerischen char-Wert umwandeln oder willst du einen int-Wert als String darstellen?
-
Du hast da aber keine char-Array, sondern ein Array von 8 char-Pointern.
Und lass den Cast weg. Der macht nur, dass deine Fehler akzeptiert werden. Richtig wird es dadurch nicht.
-
beginnerrfrage schrieb:
Ich will "count" nur auf den esten ersten char speichern.
int count; char *arg[8]; arg[0] = (char)count;
int count; char arg[8]; arg[0] = count;
Und beachte, dass char hier sowohl signed als auch unsigned sein darf.
-
Ich muss ein ein char Array von 8 char-Pointern definieren und eine von diese pointern müssen ein integer zeigen.
Ist das überhaupt nicht möglich?
Es hat mit atoi auch nicht funktioniert:
int count; char *arg[8]; arg[0] = atoi(count, arg[1], 10);
Vielleicht geht das mit malloc oder?
-
Du weißt nicht was du willst, du weißt nicht was du machst.
Bevor du deine nächsten unkoordinierten Fragen stellst ohne die zuvor gegebenen Antworten zu achten, denke mal nach.
-
beginnerrfrage schrieb:
Ich muss ein ein char Array von 8 char-Pointern definieren und eine von diese pointern müssen ein integer zeigen.
Ist das überhaupt nicht möglich?
Wenn du die genaue Anforderung mal in richtigem Deutsch formulierst, kann man das vielleicht beantworten.
-
Und welche Version von atoi verwendest du?
Oder hast du geraten wie der Aufruf ist?
-
Jetzt versuche ich es noch mal.
Mien Ziel ist diese funktion aufzurufen: int funktionsname(char *argv[]);
Mit dem follgenden Kode kann ich es erfolgreich kompilieren:
#include <stdio.h> #include <stdlib.h> int main( int argc, char *argv[] ){ argv=(char **)malloc(3 * sizeof(char *)); argv[0] = "-gridfile"; argv[1] = "ocean1.grd"; argv[2] = NULL; funktionsname(char *argv[]); }
Aber dieser follgende Kode ist nicht erfollgreich kompilierbar:
#include <stdio.h> #include <stdlib.h> int main( ){ argv*[3]; // Wie soll ich definieren? argv=(char **)malloc(3 * sizeof(char *)); argv[0] = "-gridfile"; argv[1] = "ocean1.grd"; argv[2] = NULL; funktionsname(char *argv[]); }
Könnt ihr bitte das zweige Program corregieren.
-
beginnerrfrage schrieb:
Ich muss ein ein char Array von 8 char-Pointern definieren und eine von diese pointern müssen ein integer zeigen.
Ist das überhaupt nicht möglich?
Es hat mit atoi auch nicht funktioniert:
int count; char *arg[8]; arg[0] = atoi(count, arg[1], 10);
Vielleicht geht das mit malloc oder?
1. Der erste Fehler ist, dass count gar nicht initialisiert ist und du eine nicht initalisierte Variable der Funktion atoi übergibst.
2. Übergibst du der Funktion atoi vollkommen willkürlich Parameter.
3. Ist atoi die falsche Funktion (konvertiert einen String in einen int).
4. Die erwähnte Funktion itoa ist nicht im Standard.
5. Verwende sprintf oder snprintf.
http://pubs.opengroup.org/onlinepubs/9699919799/L. G.
Steffo
-
Sorry so sieht die funktionsaufruf:
funktionsname(argv);
-
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??????