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]第二个?
cout 不填充argv那些来自用于执行程序的命令行的元素.此外,无论何时使用argv,请务必检查argc,这是有效索引的数量argv.您的程序可能崩溃,因为您没有向程序传递任何参数,因此元素argv不可用.
您需要使用cin调用来读取您期望的用户输入,或者更改程序以使用从命令行传入的值,即不提示或读取.
你添加的假设是正确的argv:如果你用:执行程序./blackjack 400 1,那么argv[1]应该是400,argv[2]应该是1.
因为根据您的编辑,您似乎想要从命令行获取这些数字,然后删除您的cout呼叫.
| 归档时间: |
|
| 查看次数: |
618 次 |
| 最近记录: |