最近寫程序時,須要將一個一維數組編程二維數組,很簡單,寫完以後,運行錯誤!ios
提示: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]; } } }
糾結了我好長時間。。。spa
問題所在:棧的默認內存空間爲1M左右,因此會致使內存溢出。code
也就是數組定義的太大了。blog
解決方法:內存
聲明成全局或static的,這兩種變量不壓棧。io
代碼:class
把數組聲明爲static,就沒有問題了stream
#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]; } } }