eine kurze Frage. Ich versuche, eine Funktion zu schreiben, die den Namen einer Zeichenfolge erhält und das zweite Zeichen ausgibt, aber es wird nicht kompiliert (unter http://ideone.com), können Sie das Problem beheben? Ich sehe das Problem nicht, da ich eine Adresse in die Funktion sende und um den Zugriff auf das Zeichen in dieser Adresse ersuche.C mit einem Zeiger auf eine Zeichenfolge in einer Funktion
#include <stdio.h>
int main(void) {
char line[4] = "abc";
test(line);
return 0;
}
void test(int point) {
point++;
printf("%c",*point);
return;
}
Der Compiler-Fehler, die ich erhalte ist -
Compilation error time: 0 memory: 10320 signal:0
prog.c: In function ‘main’:
prog.c:5:2: warning: implicit declaration of function ‘test’ [-Wimplicit-function-declaration]
test(line);
^~~~
prog.c: At top level:
prog.c:9:6: warning: conflicting types for ‘test’
void test(int point) {
^~~~
prog.c:5:2: note: previous implicit declaration of ‘test’ was here
test(line);
^~~~
prog.c: In function ‘test’:
prog.c:11:14: error: invalid type argument of unary ‘*’ (have ‘int’)
printf("%c",*point);
^~~~~~
Warum verwenden Sie 'int' anstelle von' char * '? Auch "int" kann nicht dereferenziert werden. – BLUEPIXY
Sollte 'test (char * point)' sein – smttsp
Wenn Sie tatsächlich die Wörter in der Fehlermeldung lesen, sind sie ziemlich spezifisch. Sie ** müssen ** sie jedoch tatsächlich lesen. Sie sind nicht nur da, um Platz auf dem Bildschirm zu nehmen; Sie vermitteln Informationen. –