在调试模式下,我在VS2012中继续从命令参数中获取错误的值。我通过Properties-> Configuration properties-> Debugging-> Command Arguments设置了正确的参数,但我仍然得到相同的错误输出。
代码在发布模式下工作,但不在调试模式下工作。
这是我的代码:
int main(int argc, char **argv)
{
cout << argc << endl;
return 0;
}
输出为:2130567168
另外,我已经检查了argv应该指向的内存块,它与我传递的参数没有任何关系。
编辑:
由于医生的质疑,我已经解决了这个问题。显然,设置入口点会产生错误的值。我已经把它设置为“主”并删除它解决了问题。
任何人都可以解释为什么会这样吗?
答案 0 :(得分:3)
关于编辑,C程序的入口点不是main
,而是初始化C运行时的C运行时特定入口点,包括最终传递给main
的参数。