zoukankan      html  css  js  c++  java
  • C++错误:Process returned -1073741571 (0xC00000FD)

    最近写程序时,需要将一个一维数组编程二维数组,很简单,写完之后,运行错误!

    提示:Process returned -1073741571 (0xC00000FD)

    刚开始写的代码如下:

    #include <iostream>
    using namespace std;
    int main()
    {
    
        unsigned short frame[1000000] = {0};
        unsigned short frame2[10][100000];
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 100000; j++) {
                frame2[i][j] = frame[i + j * 10];
            }
        }
    }

    纠结了我好长时间。。。

    问题所在:栈的默认内存空间为1M左右,所以会导致内存溢出。

    也就是数组定义的太大了。

    解决方法:

    声明成全局或static的,这两种变量不压栈。

    代码:

    把数组声明为static,就没有问题了

    #include <iostream>
    using namespace std;
    int main()
    {
    
        static unsigned short frame[1000000] = {0};
        static unsigned short frame2[10][100000];
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 100000; j++) {
                frame2[i][j] = frame[i + j * 10];
            }
        }
    }
  • 相关阅读:
    KMP算法小结
    算法二叉搜索树之AVL树
    算法导论之红黑树的学习
    算法导论小结(一)
    感悟或摘抄
    js中神奇的东西
    简单了解webservice
    用<![CDATA[]]>将xml转义为 纯文本
    简单了解soap协议
    java写webservice接口
  • 原文地址:https://www.cnblogs.com/gousheng/p/7850367.html
Copyright © 2011-2022 走看看