VS編譯的程式出現記憶體不夠的解決辦法

2021-06-23 02:54:18 字數 854 閱讀 7908

link的/stack選項 

/stack 

:reserve[,commit] 

reserve:

棧總大小

commit:

程式開始時系統提供的實際記憶體量

預設:1m,8k 

引數為0

取預設值

今天在vc++.net中執行聚類程式,老是說stack 

overflow,  後來才發現是棧空間太小了。

單單儲存100個網頁的資料量就比較大了。

把堆疊的大小已經設定為: 

堆疊保留大小為:

100000000

;堆疊提交大小為

:  100000000; 

就沒問題了。

vs修改:

在 visual studio 開發環境中設定此鏈結器選項

問題解答:

方法一:stacksize 

定義.def檔案

語法:stacksize reserve[,commit]

reserve

:棧的大小;

commit

:可選項,與作業系統有關,在

nt上只一次分配物理記憶體的大小

方法二:設定/stack

vc6.0

修改:

開啟工程,依次操作選單如下:

project->setting->link,在category 中選中output,然後

在reserve中設定堆疊的最大值和commit。

注意:reserve預設值為1mb,最小值為4byte;commit是保留在虛擬記憶體的頁檔案裡面,它設定的較

大會使棧開闢較大的值,可能增加記憶體的開銷和啟動時間

VS2010驅動編譯出現的問題

編譯工程的時候出現 error c2065 in opt z undeclared identifier error c2143 syntax error missing before const error c2182 invalid parameter illegal use of type v...

c C 編譯的程式占用的記憶體

乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結構中的堆是兩回事,分配方式倒是類...

C C 編譯的程式占用的記憶體

乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 堆,棧,段,資料段,bss段。1 棧區 stack 由編譯器自動分配釋放,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結構...