gpt4 book ai didi

C++ EXC_BAD_ACCESS,argv[]

转载 作者:太空宇宙 更新时间:2023-11-04 16:26:11 25 4
gpt4 key购买 nike

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

// ...

我省略了其余部分,因为错误发生在其他任何事情之前。

代码在终端中运行,但无法通过我类(class)的自动评分器。

输入的参数:

./blackjack 400 1

应该适用于任何数字。

argv[0] 不应该是 blackjack,argv[1] 是第一个数字,argv[2] 是第二个吗?

最佳答案

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

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

您添加的关于 argv 的假设是正确的:如果您执行程序:./blackjack 400 1,则 argv[1]应为 400argv[2] 应为 1

因为根据您的编辑,您似乎想从命令行获取这些数字,然后删除您的 cout 调用。

关于C++ EXC_BAD_ACCESS,argv[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11836426/

25 4 0
文章推荐: javascript 运行 php 函数
文章推荐: php - 使用 PHP 隐藏父 div 和子 div?
文章推荐: javascript - polymer 1.x : Using iron-input to format numbers on input
文章推荐: html - 如何在不破坏的情况下定位 CSS
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com