私はCから始めたばかりで、ポインターの全体像を把握しようとしていますが、次の問題に遭遇しました。
ユーザーが入力した文字を別の関数に渡して出力しようとしています:
#define MAX_OPTION_INPUT 1
#define TRUE 1
#define FALSE 0
// print a menu
void getCharacter() {
char getNum[MAX_OPTION_INPUT+2];
int finished = FALSE;
// get character from user
do {
fgets(getNum, MAX_OPTION_INPUT+2, stdin);
if (getNum[strlen(getNum) - 1] != '\n') {
printf("Input one digit number please.\n");
readRestOfLine();
}
else {
getNum[strlen(getNum) - 1] = '\0';
finished = TRUE;
}
} while (!finished);
processChar(getNum);
}
// process menu
void processChar(char num) {
printf("TADA: %c", num);
}
このコードをコンパイルすると、警告が表示されます: 'processChar' の引数 1 を渡すと、キャストなしでポインターから整数が作成されます
そして、実行すると、渡すはずの文字ではなく、奇妙な文字が出力されます。
ここでどこが欠けているのか説明していただけますか?前もって感謝します!