我的程序在 GCC 上运行的 Linux 上运行良好,但是当我使用 Visual Studio 2013 在 Windows 上编译和运行代码时,它给出了此错误:a3a3.exe 中 0x00EC2527 处未处理的异常:0xC00000FD:堆栈溢出(参数:0x00000000) ,0x00692000)。
它还在 crtexe.c 的第 626 行插入了一个断点;以下是第 624 - 626 行供引用:
#else /* WPRFLAG */
__initenv = envp;
mainret = main(argc, argv, envp);
在使用 Visual Studio 2013 之前,我已经编译并运行了 C 程序,但是这个程序似乎不想工作,而且我一生都无法确定原因。我非常感谢您的帮助,我对编程相当陌生,这是我在 stackoverflow 上的第一篇文章。我也非常感谢任何额外的提示或批评来帮助我学习。谢谢。
这是我的程序:http://pastebin.com/X731mU7W
最佳答案
struct CR CRArray[14500]
太大,无法存放在堆栈上(因此出现堆栈溢出)。相反,动态分配它。
struct CR *CRArray = malloc (sizeof (struct CR) * 14500);
尽管如此,因为它是 VS,所以您可能需要在此实例中转换 malloc
的返回值。
另外,不要忘记释放
内存。
关于C 代码无法在 Windows 上运行 (Visual Studio 2013),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23094888/