【发布时间】:2012-08-07 08:02:16
【问题描述】:
我已经被这个问题困扰了一段时间,无法调试这个EXC_BAD_ACCESS 错误。我已经运行了 NSZombie,我很确定这是 argv[1] 的内存问题(或其他任何问题)。我检查了我的语法和库,所以我不知道为什么它不会存储超过 arg[0]。
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
int main(int argc, char* argv[])
{
cout << "Enter the initial bankroll" << endl;
int bankroll = atoi(argv[1]); //code faults here
cout << "Enter seed" << endl;
int seed = atoi(argv[2]);
// ...
我省略了其余部分,因为错误发生在其他任何事情之前。
代码在终端中运行,但我的班级的自动评分器失败了。
输入的参数:
./二十一点 400 1
应该适用于任何数字。
argv[0] 不应该是二十一点,argv[1] 是第一个数字,argv[2] 是第二个数字吗?
【问题讨论】:
-
您“相信”还是知道?有一个很大的区别......
-
对不起。让我编辑并提供更多细节。
-
你说你得到
EXC_BAD_ACCESS,但程序在终端运行?EXC_BAD_ACCESS发生在哪里?使用自动评分器? -
我认为这是您应该向设计自动评分机的人提出的问题。我怀疑您不是要使用命令行参数,而是应该重定向 cin 以便它从文件中读取。但谁知道呢,我不认为这是任何人都可以回答的问题。
标签: c++ exc-bad-access command-line-arguments