Sunnyharry
Newbie
- Registriert
- Juli 2012
- Beiträge
- 4
Hallo Leute
Ich habe erst vor kurzen mit C angefangen und habe probleme damit. Das Problem tritt auf, wenn ich versuche aus einer Funktion einen String an eine andere Funktion zu übergeben. Ich beschreib am besten mein Problem indem ich euch den Code zeige.
Ich habe zwei Funktionen. Die eine ist die Funktion, die den String empfangen soll.
Die zweite Funktion kriegt argv und kopiert den String von argv[3] in einen neuen String "startKeyy"
Nun würde ich gerne in der Funktion createCardID folgendes machen.
Wenn ich nun den letzten Teil als Probe in die main-Funktion packe, funktioniert alles wunderbar. Wenn ich es aber wie gewollt in die createCardID-Funktion rein kopiere, macht er mir Probleme.
Die Konsole gibt mir folgenden Fehler aus:
In Eclipse werden folgende Zeilen Rot markiert mit folgenden Nachrichten:
Ich hoffe ich habe mein Problem genau genug erklärt. Habt ihr vielleicht ne Idee, was ich falsch mache?
Ich habe erst vor kurzen mit C angefangen und habe probleme damit. Das Problem tritt auf, wenn ich versuche aus einer Funktion einen String an eine andere Funktion zu übergeben. Ich beschreib am besten mein Problem indem ich euch den Code zeige.
Ich habe zwei Funktionen. Die eine ist die Funktion, die den String empfangen soll.
Code:
void createCardChar(char* testcardID) {
int key = atoi(testcardID);
int keyN=key%10000/1000;
int keyO=key%1000/100;
int keyS=key%100/10;
int keyW=key%10;
//(Unwichtiger Code der mit dem Problem nichts zu tun hat)
}
Die zweite Funktion kriegt argv und kopiert den String von argv[3] in einen neuen String "startKeyy"
Code:
void createCardID(int cardNumber, char *argv[]){
int currentCardNumber=0;
int i=0;
int countToFour=0;
size_t laengeC;
laengeC = strlen(argv[3]);
char startKeyy [laengeC] ;
strcpy(startKeyy,argv[3]);
/* (Unwichtiger Code der mit dem Problem nichts zu tun hat.Druckt einfach nur den
String "StartKeyy" aus.) */
Nun würde ich gerne in der Funktion createCardID folgendes machen.
Code:
char cardID[4];
cardID[0]= startKeyy[0];
cardID[1]= startKeyy[1];
cardID[2]= startKeyy[2];
cardID[3]= startKeyy[3];
createCardChar(cardID);
Wenn ich nun den letzten Teil als Probe in die main-Funktion packe, funktioniert alles wunderbar. Wenn ich es aber wie gewollt in die createCardID-Funktion rein kopiere, macht er mir Probleme.
Die Konsole gibt mir folgenden Fehler aus:
Code:
Building file: ../src/projekt.c
Invoking: GCC C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/projekt.d" -MT"src/projekt.d" -o "src/projekt.o" "../src/projekt.c"
../src/projekt.c: In Funktion »createCardID«:
../src/projekt.c:128:2: Warnung: Implizite Deklaration der Funktion »createCardChar« [-Wimplicit-function-declaration]
../src/projekt.c: Auf höchster Ebene:
../src/projekt.c:349:6: Warnung: In Konflikt stehende Typen für »createCardChar« [standardmäßig aktiviert]
../src/projekt.c:128:2: Anmerkung: Vorherige implizite Deklaration von »createCardChar« war hier
Finished building: ../src/projekt.c
Building target: projekt
Invoking: GCC C Linker
gcc -o "projekt" ./src/projekt.o
Finished building target: projekt
**** Build Finished ****
In Eclipse werden folgende Zeilen Rot markiert mit folgenden Nachrichten:
Code:
[COLOR="Red"]createCardChar(cardID);[/COLOR]
Anmerkung: Vorherige implizite Deklaration von »createCardChar« war hier
Warnung: Implizite Deklaration der Funktion »createCardChar« [-Wimplicit-function-declaration]
[COLOR="Red"]void createCardChar(char* testcardID) {
[/COLOR]Warnung: In Konflikt stehende Typen für »createCardChar« [standardmäßig aktiviert] carcassonnev1.c
Ich hoffe ich habe mein Problem genau genug erklärt. Habt ihr vielleicht ne Idee, was ich falsch mache?