C 代码无法在 Windows 上运行 (Visual Studio 2013)

标签 c visual-studio

我的程序在 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/

相关文章:

visual-studio - UWP 总是在测试文件夹中发布输出

visual-studio - 在 Visual Studio 2019 中引发用户处理的异常时如何不中断

visual-studio - Visual Studio 项目构建依赖项没有引用?

c - "FOLLOW_set_in_"... 在生成的解析器中未定义

java - C 中的#define 类似于Java 中的静态变量吗?

c - frama-c wp 常量变量和常量数组

c - 使用 fread 读取 16 字节 block

c# - 生成 obj 文件夹的目的是什么?

Android 中的 connect() C 方法

c++ - MFC C++ - 在没有命令的情况下在 ProcessShellCommand() 上崩溃