为什么在使用argc和argv时不会出现分段错误?

Jat*_*tos 2 c++ opengl

我有一个带有两个主要参数的OpenGL程序,我正在macOS上使用xCode进行编译

int main (int argc, char **argv)
{
...
glutInit(&argc, argv);
Run Code Online (Sandbox Code Playgroud)

我研究了如果出现分段错误后如果我不使用a.out和2值进行编译,但是没有这些值就无法编译它。

Bat*_*eba 5

您提到的分段错误是程序未定义行为的一种特殊表现。

但是未定义的行为正是这样:您不知道会发生什么。

这就是为什么您需要argc在读取任何之前检查的值的原因argv

  • 它们被声明为`main`的参数,这意味着它们在`main`中具有局部变量的范围...您是否缺少一些相关代码? (4认同)
  • @贾托斯:你在说什么?它们就在您的代码的主要功能参数定义中。 (2认同)