当我通过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