2017-04-03 278 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