VC 記憶體申請

2021-05-22 23:15:53 字數 490 閱讀 2898

問題:如果要申請一塊記憶體?應該如何做?

解答:在vc++一般的做法是:

lpvoid pvdata;//宣告乙個任何型別的指標

dword dwfilesize;//申請記憶體的大小

//分配全域性的可移動的記憶體

hglobal hglobal=globalalloc(gmem_moveable,dwfilesize);

//然後鎖住記憶體進行操作

pvdata=globallock(hglobal);

//然後在解鎖記憶體

globalunlock(hglobal);

開始的時候我並不太明白,看著這麼複雜的東西,覺得很高深,後來老大就說了一句話,他說分配記憶體其實就是:

unsigned char *pbmpbuf ;

pbmpbuf=new unsigned char[dwfilesize];只不過上面的方式,可以防止別的程序修改而已,我這才明白原來如此簡單,不愧是博士呀!一語道破本質!

動態申請記憶體

如果函式的引數是乙個指標,不要指望用該指標去申請動態記憶體。示例1中,test函式的語句getmemory str,100 並沒有使str獲得期望的記憶體,str依舊是null,為什麼?void getmemory char p,int num void test void 示例1 試圖用指標引數申...

windows記憶體申請

在進行windows的學習過程中,經常看到不同的記憶體分配方式,例如virtualalloc,heapalloc,malloc和new。它們之間存在一些差異。pvoid virtualalloc pvoid pvaddress,size t dwsize,dword fdwallocationtyp...

記憶體申請 釋放

申請 我們使用mallco 向記憶體動態申請容量,那麼malloc 0 申請的到底是多大?明白一點,絕對不為0,malloc的時候程式會給分配乙個用於管理此程式快的結構體,其次由於更方便的管理記憶體,記憶體是需要對其的,那麼如果是對齊的,就並不一定為我們指定的大小,我們可以用malloc usabl...