C++ 尝试从命令行获取输入时出现char**argv[]segfults

C++ 尝试从命令行获取输入时出现char**argv[]segfults,c++,input,argv,argc,C++,Input,Argv,Argc,我正在尝试做最基本的事情,我遇到了麻烦。我试图从命令行中读入一个文件名,以便稍后在我的程序中使用,但我甚至无法从argv[]中提取名称。代码如下: #include <iostream> #include <string.h> using namespace std; int main(int argc, char **argv[]){ cout << "argc = " << argc << "\n\n"; cou

我正在尝试做最基本的事情,我遇到了麻烦。我试图从命令行中读入一个文件名,以便稍后在我的程序中使用,但我甚至无法从argv[]中提取名称。代码如下:

#include <iostream>
#include <string.h>

using namespace std;

int main(int argc, char **argv[]){
    cout << "argc = " << argc << "\n\n";
    cout << "Filename: " << argv[1] << "\n";
    return 0;
}
*

现在我知道argv[1]是一个指向字符数组的指针,所以这个输出是有意义的。但是,如果我做了以下更改

cout << "Filename: " << argv[1] << "\n";
cout
或

但不是

int main(int argc, char **argv[]){

但不是

int main(int argc, char **argv[]){
这应该是:

int main(int argc, char *argv[])
                        ^ only one * here
这应该是:

int main(int argc, char *argv[])
                        ^ only one * here

可能重复的可能重复的可能重复的谢谢你把事情弄清楚,我不会注意到我自己的。现在很好。谢谢你清理,我不会注意到我自己的。现在一切正常。
int main(int argc, char **argv){
int main(int argc, char **argv[]){
int main(int argc, char *argv[])
                        ^ only one * here