C++解決大數(shù)組棧內(nèi)存不夠問(wèn)題的方法分析
本文實(shí)例講述了C++解決大數(shù)組棧內(nèi)存不夠問(wèn)題的方法。分享給大家供大家參考,具體如下:
在c++中,我們可以直接通過(guò)下面的方式創(chuàng)建一個(gè)數(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比較小還好說(shuō),一旦Nx和Ny很大時(shí),就會(huì)報(bào)錯(cuò),導(dǎo)致編譯失敗。
為解決這一問(wèn)題,我們可以采用下面的幾種方法來(lái)解決此問(wèn)題:
1、在VC的Project setting里的link選項(xiàng)卡里把棧開(kāi)大一點(diǎn)(windows里默認(rèn)是4M)
2、聲明成全局或static
的,這兩種變量不壓棧,想開(kāi)多大都可以,顯然全局的變量其本身就可以擁有更多的內(nèi)存 (這個(gè)方法可以立即奏效,還是不錯(cuò)的)
3、使用動(dòng)態(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; }
上面的幾種方法中 ,使用動(dòng)態(tài)分配數(shù)組內(nèi)存,這樣使用的時(shí)堆儲(chǔ)存,還是比較好的方法,但是成本高;而使用添加static
的方法成本最小。
希望本文所述對(duì)大家C++程序設(shè)計(jì)有所幫助。
相關(guān)文章
windows下安裝QT及visual studio 2017搭建開(kāi)發(fā)環(huán)境
這篇文章主要介紹了windows下安裝QT及visual studio 2017搭建開(kāi)發(fā)環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03C++實(shí)現(xiàn)LeetCode(85.最大矩形)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(85.最大矩形),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07C/C++編程判斷String字符串是否包含某個(gè)字符串實(shí)現(xiàn)示例
這篇文章主要為大家介紹了C++編程中判斷String字符串是否包含某個(gè)字符串的實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11C語(yǔ)言編程內(nèi)存分配通訊錄靜態(tài)實(shí)現(xiàn)示例代碼教程
這篇文章主要為大家介紹了C語(yǔ)言編程實(shí)現(xiàn)靜態(tài)的通訊錄示例代碼教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-10-10使用C語(yǔ)言實(shí)例描述程序中的內(nèi)聚和耦合問(wèn)題
這篇文章主要介紹了用C語(yǔ)言實(shí)例描述程序中的內(nèi)聚和耦合,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08