當前位置:首頁 » 服務存儲 » vc存儲內存
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

vc存儲內存

發布時間: 2022-05-19 07:05:06

㈠ VC中的內存是如何分配的

1)學習C\C++的是不需要研究這個問題的。這個問題不屬於C\C++.
2)如果樓主學過匯編知識,這個問題太簡單了,屬於必備知識。
3)如果樓主學過一段時間的操作系統知識或PE文件格式問題,這個問題也是很容易找到答案的。
4)可目前而言,要透徹理解這個問題很難。時間久了,知識豐富了,就算不屬於C\C++的知識范疇,樓主也會明白的。
5)可以簡單理解為,這個好比在小格子文稿紙中寫文章一樣,假設每個小格子都有編號,你寫了2個段落後。開始寫第三段落時,要寫的第一個字所在的小方格上肯定也會有個編號,樓主的問題就好比在問為什麼第三段落的第一個字所在的小方格的編號為0x0012FF64?原因很簡單,一個一個排下來的。
6)寫文章肯定是從第一個格子,一個一個寫下來的,但與寫文章不同的是,程序的地址分配不是連續的。它分為好多塊,代碼為一塊,全局變數為一塊,菜單資源、對話框、工具欄資源又歸在一塊等等很多內容。這樣一來,就好比樓主寫了篇文章,讓編譯器編譯後,編譯器把所有的動詞全部歸為一類,放在了第一段落,然後重啟一行,歸納所有的名詞。再歸納所有的形容詞,以此類推。因此,如果樓主上手寫的文章第一個字是「我」(名詞),原來應該的地址為0x00000000,可實際被編譯器安排到了exe文件中第二段落的第一個小格子里。這個小格子的地址究竟為多少,取決於第一段落里的動詞的數量。編譯器要把整篇文章所有的動詞歸納到第一段後,「我」這個名詞在第二段落第一個格子的編號才能被確定下來。(實際的編譯器肯定不是這樣工作的,但實現的結果就和這個差不多,後一段的地址總是要取決於前一個段落內容的多少而定)
7)當把exe文件從磁碟裝到內存中時,操作系統不是按照磁碟上的地址順序轉入的,譬如exe文件第1,2個字為「開始」(動詞)、「執行」(動詞),但被裝入內存後,地址往往(按照現有的任何操作系統要求絕對不可能)不是0x00000000和0x00000001,而是0x00400000和0x00400001。

大致的情況就是如此了,不知道這樣解釋樓主是否明白了些,還是被我弄得一頭霧水~

㈡ vc內存分配

windows 32位操作系統下,使用內存分頁機制。每個進程都在自己虛擬的獨立內存里。
而通用寄存器為32位,可以使用32根線性地址定址。定址的方式等於2的32次方。也就相當於4G左右。也就是說,每個進程只擁有4G左右的虛擬內存空間。

並且4G里有2G左右被系統使用,代碼能用的就2G以內。地址范圍是0x00400000到0x7FFFFFFF

你的實際內存大並不能增加1個進程可以使用的虛擬內存.

㈢ Vc6.0為int變數開辟4個位元組的內存空間,並按整型數的存儲方式存放數據,允許存放的數值范圍是怎樣得到的

4個位元組就是32個BIT,最高一個BIT作為符號位,剩下31BIT, 這個范圍就是這31BIT所能表達的最大數值,即2的31次方。

㈣ vc如何實現內存映射

內存映射文件與虛擬內存有些類似,通過內存映射文件可以保留一個地址空間的區域,同時將物理存儲器提交給此區域,只是內存文件映射的物理存儲器來自一個已經存在於磁碟上的文件,而非系統的頁文件,而且在對該文件進行操作之前必須首先對文件進行映射,就如同將整個文件從磁碟載入到內存。由此可以看出,使用內存映射文件處理存儲於磁碟上的文件時,將不必再對文件執行I/O操作,這意味著在對文件進行處理時將不必再為文件申請並分配緩存,所有的文件緩存操作均由系統直接管理,由於取消了將文件數據載入到內存、數據從內存到文件的回寫以及釋放內存塊等步驟,使得內存映射文件在處理大數據量的文件時能起到相當重要的作用。另外,實際工程中的系統往往需要在多個進程之間共享數據,如果數據量小,處理方法是靈活多變的,如果共享數據容量巨大,那麼就需要藉助於內存映射文件來進行。實際上,內存映射文件正是解決本地多個進程間數據共享的最有效方法。

㈤ vc中怎樣快速在文件中存儲大容量數據

大容量文件讀寫,用內存映射文件能提高速度。

㈥ VC中int,long,float.double是如何存儲的

其實這這些都是申請內存。
int,long等等都是指明如何使用這些內存
這些東西在匯編裡面概念很清楚。
例如
int a;
那麼就在內存中定義了sizeof int = 4(32位機器上的int是4位元組,其它的可以這樣算:
X位機器的int佔用X/8位元組)
若編譯器規定a的地址為1000
那麼屬於a的內存地址為1000~1003
另外,float等實數的運算和FPU與協處理器有關,詳細請到Google上查。

㈦ VC++ 如何把圖像存入內存

我也用的這個圖形庫,接分來了~~

代碼如下:

#include <graphics.h> // 就是需要引用這個圖形庫
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{
initgraph(640, 480);

IMAGE p; // 放到 initgraph() 後面定義

setbkcolor(3);
circle(535, 260, 35);
circle(450,260,35);
line(535,260,450,260);
line(500,200,550,200);
line(500,200,450,260);
getimage(&p, 415,200,200,100); // 最後兩個參數表示寬度和高度

// 貼到左上角測試一下
putimage(0, 0, &p);

getch(); // 按任意鍵繼續
closegraph(); // 關閉圖形界面
}

㈧ VC6.0內存有多大

VC6.0佔用的內存取決於工程的類型和文件的數量。 不過分析這個沒什麼意義,因為在實際工程中VC6.0已經淘汰很多年了,哪怕是6年前的VC8.0也比它先進許多。

㈨ VC 大量數據存儲問題,我現在有200000多點數據需要存儲,數組定義又不能那麼大有什麼辦法呢

你的數據單元的大小是多少?數組長度的最大值是多少?數目為200000多並不算大,如果數據單元不是非常大,用new或malloc在堆中分配就可以。目前的計算機一般分配個幾百MB都不會報錯,就假設你的數組元素最大可能達到300000個,需要設定數組長度為300000,而數據單元的大小為1000位元組,那麼需要佔用的內存大小為300MB,這一般是可以承受的,況且你的數據單元估計遠小於1000位元組吧?所以在堆中分配內存即可。
另外在對於這種使用大塊內存的情況,相較於在堆中分配內存,使用WindowsAPI的VirtualAlloc或內存映射文件更加直接高效。

㈩ vc2015典型配置要多少內存

官方指定:1 GB (32位), 2 GB (64位)的內存,如果使用虛擬機安裝VS2015,那麼宿主機再增加512MB內存。