相关疑难解决方法(0)


在C++中工作正常,但在C中运行时错误

我这里有这个代码::

int f(int x, int *py, int **ppz)
{
  int y, z;
  **ppz += 1; 
   z  = **ppz;
  *py += 2;
   y = *py;
   x += 3;
   return x + y + z;
}

int main()
{
   int c, *b, **a;
   c = 4;
   b = &c;
   a = &b; 
   printf( "%d\n", f(c,b,a));
   printf( "%d\n", c);
}
Run Code Online (Sandbox Code Playgroud)

(请相应选择头文件)

当我将此代码作为C++程序运行时,它运行顺利.但是,当我将它作为C程序运行时,它会完成执行,打印所有值,但是在代码的最后一行,会产生运行时错误.我附加了一个调试器,并在程序结束时(在C中运行此代码时)单击Step-Over,它将我带到一个min_gw文件,看起来像这样::

__mingw_CRTStartup()
__mingw_CRTStartup+208: mov    %eax,%ebx
__mingw_CRTStartup+210: call   0x407fb0 <_cexit>
__mingw_CRTStartup+215: mov    %ebx,(%esp)
__mingw_CRTStartup+218: call   0x408088 <ExitProcess@4>
__mingw_CRTStartup+223: nop
Run Code Online (Sandbox Code Playgroud)

这是什么文件?为什么代码在C ??中失败?

Ideone参考::

C …

c c++

5
推荐指数
1
解决办法
194
查看次数

标签 统计

c ×2

c++ ×2

program-entry-point ×1

return-type ×1

return-value ×1