用動態申請虛擬記憶體求任意數階乘的C 實現

2021-04-13 09:35:25 字數 655 閱讀 1472

計算較小數的階乘程式很容易編寫,對於較大數的階乘的計算一般做法是使用陣列,但是陣列的長度有限,本程式採用動態申請虛擬記憶體空間的方法,優點是使用的不是物理記憶體,而是虛擬記憶體,申請的範圍更大。

具體程式如下:

#include

#include

using namespace std;

int lfac(int *a, int n)

void main()

int * lpbase =(int *) virtualalloc(null, n*10240, mem_commit, page_readwrite);    // 保留 n*10240 總的位址空間

int * lppage = (int *)virtualalloc (lpbase + 0,n*1024,mem_commit,page_readwrite); // 提交n*1024的頁位址空間

bool flag=false;

if(lfac(lppage,n)<0)

cout<<"溢位"<=0;i--)

{if(flag || lppage[i]>0)

{flag=true;

cout<

推薦**:好巴鹿(

虛擬記憶體應用

虛擬記憶體的重要性體現在下面幾個方面 1 虛擬記憶體可以對映到硬碟,以達到擴充套件記憶體的作用,這樣系統在物理記憶體已經用滿的情況下,就不會因為沒有記憶體可用,而導致系統崩潰。2 虛擬記憶體是以程序空間為定址空間的,一般情況,程序使用者模式下的定址空間 是2g,為了避免記憶體的碎片,可以把2g程序空...

虛擬記憶體(Virtual Memory)

虛擬記憶體 virtual memory 是windows管理所有可用記憶體的方式。對於32位windows系 統,每個程序所用到的虛擬記憶體位址從0到2 32 1,總容量4gb,其中2gb是與作業系統以 及其他所有程序所共享,另外2gb分派給程序獨佔 這就是常說的32位windows中乙個進 程最...

虛擬記憶體使用

虛擬記憶體使用一 簡介windows 提供了3 中進行記憶體管理的方法,包括 虛擬記憶體 一般用來管理大型資料結構,受到硬碟調頁檔案的支援 記憶體對映檔案 常用來管理大型資料流和多程序共享。記憶體堆 最適合用來管理大量的小物件。二 虛擬記憶體的使用 1 我們可以在程序的位址空間中保留乙個區域 pvo...