當我通過gcc(g ++)/ Cygwin編譯並運行該程序時,它編譯並按預期行事。Visual Studio '13(訪問衝突)
#include <iostream>
using namespace std;
int main(int argc, char* argv[]) {
for (int arg = 1; arg <= argc; arg++)
{
cout << argv[arg] << endl;
}
return 0;
}
但是,在使用Visual Studio 13進行編譯時,程序會編譯,但執行時會給出訪問衝突。是什麼賦予了?
demo.exe中0x000B5781未處理的異常:0xC0000005:訪問衝突讀取位置0x00000000。
'ARG <= argc'所以,如果你有一個參數('ARGC = 1'),你會得到'ARG = 1'和'1 <= 1',然後去和做'的argv [1]'這是一個論點的第二個。此外,似乎Visual Studio編譯的代碼很好,這一點可以從以下事實得到證明:編譯並運行程序。 – 2014-12-06 02:38:01
是的,我應該有不同的措辭。 – ever99 2014-12-06 19:32:58