問題:如果要申請一塊記憶體?應該如何做?
解答:在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...