gpt4 book ai didi

objective-c - 带有控制台应用程序的 EXC_BAD_ACCESS

转载 作者:太空宇宙 更新时间:2023-11-04 06:30:41 24 4
gpt4 key购买 nike

我正在尝试学习 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);
}

}
}

但无论何时运行,当它到达 scanf("%c", *selectedOption); 行时,它都会给出 EXC_BAD_ACCESS 错误。

我用谷歌搜索了这个错误。我找到了 this article Lou Franco,但我仍然不知道我能做什么。

编辑

正如 Bryan 所指出的,我误用了指针和指针解引用。不幸的是,在清理我的代码后,它仍然给出同样的错误。

最佳答案

请先了解什么是指针。

您的问题是试图解除对无效指针的引用。

-(void)start {
[self startMenu]; // calls a method that prints the menu options
char selectedOption = '\0';
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("'%c' is not a valid option.\n", selectedOption);
}

}
}

关于objective-c - 带有控制台应用程序的 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20961839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com