我在使用Windows 10上的Visual Studio 2015社區中的C++執行以下代碼時收到了錯誤異常,即使在對具有相同問題的任何人執行大量搜索後仍不知如何解決該異常。 Visual Studio 2015社區在運行Windows 10的這臺計算機上已經運行了很長時間,但就在上個星期,它在調試任何C++程序時一直給我提出問題;特別是需要使用命令行參數的程序。這段代碼演示了這個問題,如果有人能夠指出我如何解決問題,請告訴我。Visual Studio C++拋出異常:讀取訪問衝突。使用命令行參數進行調試時
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
cout << "program name : " << argv[0] << endl;
cout << "first command argument : " << argv[1] << endl;
cin.get();
return 0;
}
我正在通過entering it into the debugging properties window添加命令行參數。如果我用ctrl + F5運行程序,它會掛起並提示程序已停止工作的屏幕。然後,在與F5運行程序,我收到的
「異常this error message拋出:讀訪問衝突
_First是nullptr
如果這個異常的處理程序,該程序可以安全。繼續。」
Visual Studio指向引發異常的位置,這是位於c:\ Program Files(x86)\ Visual Studio 14 \ VC \ include \文件夾內的文件iosfwd。它具體地指向該塊是結構char_traits內部並與指向返回管線拋出的異常的功能:被拋出
static size_t __CLRCALL_OR_CDECL length(const _Elem *_First)
{ // find length of null-terminated string
return (*_First == 0 ? 0
: _CSTD strlen(_First));
}
在錯誤的時間控制檯輸出窗口掛起,在「第一命令參數:「並不顯示」嗨「。但它確實正確地輸出了argv [0]中指定的程序名稱的文件位置。
如果我從我的命令提示符運行Project1.exe它按預期運行,並將輸出行中輸入時添加的命令行參數。這告訴我,Visual Studio存在問題,而不是我的代碼。我將不勝感激任何幫助,因爲我更喜歡使用Visual Studio編寫C++,所以如何解決這個問題。謝謝。
始終檢查使用參數前傳遞的參數數量。 – drescherjm