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];
            }
        }
    }
  • 相关阅读:
    Windows 7 远程协助
    Windows 7 帮助和支持资源—第三方网站
    Windows 7 帮助和支持资源—第三方软件
    数据结构-队列
    数据结构-栈
    pycharm每日技巧-2
    数据结构-链表
    时间处理-1
    二维数组的排序
    《疯狂的简洁》书摘
  • 原文地址:https://www.cnblogs.com/gousheng/p/7850367.html
Copyright © 2011-2022 走看看