为什么看似简单的事情却让我的程序崩溃?
我正在尝试获取 n
的值以创建一个大小为 N
的数组并对其执行各种操作,但这不是重点。无论如何,每次我尝试访问 argv[1]
时它都会崩溃。
int main(int argc, char * argv[])
{
int n;
n = atoi(argv[1]); //Crashes here!
cout << "\nN: " << n << endl;
}
最佳答案
argv[1] 是否存在?为防止您的代码访问内存,它不应检查传递了多少参数。
if(argc >= 2)
n = argv[1];
else
std::cout << "Proper usage: .....\n";
这似乎是学习如何使用调试器查看 argv 和 argc 内容的好时机。
关于c++ - 为什么我的命令行参数处理会导致我的程序崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15993994/