2017-04-03 233 views
-1

今天我运行从Visual Studio的debug文件夹中的.exe文件,并将其从这段代码调试断言失败

  • 出现错误,显示无效的空指针错误:调试断言失败
    • 程序:C: \ WINDOWS \ SYSTEM32 \ MSVCP110D.dll
    • 文件:E:\的Visual Studio 11 \ VC \包括\ xstring
    • 线:1143
    • 表达:无效的空指针

我大多做的代码,但是有一个问题一行代码。口口声声说是因为4号线(即我大胆的)的错误:

void main(int argc,const char *argv[]) 
{ 
string a, HauTo; 
**string fileName(argv[1]);** 
StackC s; 
InitS(s); //Initialize an empty stack 

fstream fi, fo; 
fi.open(fileName, ios::in); 
fo.open("Output.txt", ios::out); 
getline(fi, a); 

我做的任务,因此将不胜感激,如果有人帮助我。

+2

你可能没有通过任何命令行参数的程序。在尝试使用'argv [1]'之前检查'argc> 1'。 –

+1

如果通过双击.exe运行该程序,则没有将任何参数传递给该程序。 – molbdnilo

回答

1

你还没有说过你是如何运行这个的,但是请注意你有一个你没有检查的argc

这说明您发送给main的多少个参数。

如果您尝试访问argv[1]并且只有一个参数(argv[0] - 程序名称本身),则说明您有错误。


如果你特别想传递参数或“命令参数”在Visual Studio中,右键单击该项目并进入“属性”。然后找到“调试”,然后输入你的论点有

enter image description here