Я пытаюсь изучить Objective C (и C вместе с ним) и пишу интерактивное консольное приложение. Мой опыт связан с Java, и многие различия в Objective C до сих пор непонятны мне. Я написал следующий метод:
-(void)start {
[self startMenu]; // calls a method that prints the menu options
char selectedOption = '\0'; // instantiating selectedOption
char w = 'w';
char n = 'n';
char b = 'b';
bool validOption = NO;
while(!validOption) {
scanf("%c", selectedOption);
if(selectedOption == w) {
[self setWinningScore];
} else if(selectedOption == n) {
[self setName];
} else if(selectedOption == b) {
break;
} else {
printf("'%s' is not a valid option.\n", selectedOption);
}
}
}
Но всякий раз, когда он запускается, он выдает ошибку EXC_BAD_ACCESS, когда достигает строки scanf("%c", *selectedOption);
.
Я погуглил эту ошибку. Я нашел эту статью Лу Франко, но я все еще потеря относительно того, что я могу сделать.
ИЗМЕНИТЬ
Как заметил Брайан, я неправильно использовал указатели и их разыменование. К сожалению, после очистки моего кода он по-прежнему выдает ту же ошибку.
scanf("%c", &selectedOption);
— с амперсандом — и вы все еще получаете сообщение об ошибке? 07.01.2014