C++ EXC_BAD_ACCESS,argv []

0 c++ exc-bad-access command-line-arguments

我已经坚持了一段时间,无法调试此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]);

    // ...
Run Code Online (Sandbox Code Playgroud)

我遗漏了其余的因为错误发生在其他任何事情之前.

代码在终端中运行但是我的班级的自动分级器失败了.

输入的参数:

./blackjack 400 1

应该适用于任何数字.

argv[0]应该是二十一点,argv[1]第一个数字和argv[2]第二个?

pb2*_*b2q 5

cout 填充argv那些来自用于执行程序的命令行的元素.此外,无论何时使用argv,请务必检查argc,这是有效索引的数量argv.您的程序可能崩溃,因为您没有向程序传递任何参数,因此元素argv不可用.

您需要使用cin调用来读取您期望的用户输入,或者更改程序以使用从命令行传入的值,即不提示或读取.

你添加的假设是正确的argv:如果你用:执行程序./blackjack 400 1,那么argv[1]应该是400,argv[2]应该是1.

因为根据您的编辑,您似乎想要从命令行获取这些数字,然后删除您的cout呼叫.