本文實例講述了C++解決大數(shù)組棧內(nèi)存不夠問題的方法。分享給大家供大家參考,具體如下:
在c++中,我們可以直接通過下面的方式創(chuàng)建一個數(shù)組:
const int N = 6;const int Nx = 100;const int Ny = 100;double phi[N][Nx][Ny];double phi_b[N][Nx][Ny];
但是,如果上述的Nx和Ny比較小還好說,一旦Nx和Ny很大時,就會報錯,導致編譯失敗。
為解決這一問題,我們可以采用下面的幾種方法來解決此問題:
1、在VC的Project setting里的link選項卡里把棧開大一點(windows里默認是4M)
2、聲明成全局或static的,這兩種變量不壓棧,想開多大都可以,顯然全局的變量其本身就可以擁有更多的內(nèi)存 (這個方法可以立即奏效,還是不錯的)
3、使用動態(tài)分配數(shù)組內(nèi)存的方法:
int *A = new int[90000];.....delete A;
4、使用vector,如下:
#include <vector>using namespace std;void main(){ vector<int> A(90000); A[0] = 1;}上面的幾種方法中 ,使用動態(tài)分配數(shù)組內(nèi)存,這樣使用的時堆儲存,還是比較好的方法,但是成本高;而使用添加static的方法成本最小。
希望本文所述對大家C++程序設計有所幫助。
新聞熱點
疑難解答