c++ :内存操作
c++ :內(nèi)存操作
- 說(shuō)明
- fwrite函數(shù)的用法
- malloc函數(shù)使用
- 內(nèi)存堆和棧的區(qū)別
- 鏈表
- 內(nèi)存分配
- new char() 和 new char[]區(qū)別
- sizeof使用
說(shuō)明
線程的使用:
深度解析MFC線程及機(jī)制:https://www.cnblogs.com/xiaowangba/archive/2003/10/27/6314616.html
1、內(nèi)存泄露
內(nèi)存泄露是說(shuō)沒(méi)有釋放已經(jīng)不能使用的內(nèi)存,這里一般指堆的內(nèi)存才需要顯示的釋放。
使用malloc,calloc,realloc,new分配的內(nèi)存是在堆上的,需要用free,delete顯示的回收。
內(nèi)存泄露最明顯的一是程序很慢,在運(yùn)行程序時(shí)你可以啟動(dòng)任務(wù)管理器,會(huì)看到程序占用的內(nèi)存一直的往上漲:
fwrite函數(shù)的用法
fwrite(const voidbuffer,size_t size,size_t count,FILEstream);
(1)buffer:是一個(gè)指針,對(duì)fwrite來(lái)說(shuō),是要輸出數(shù)據(jù)的地址。
(2)size:要寫入的字節(jié)數(shù);
(3)count:要進(jìn)行寫入size字節(jié)的數(shù)據(jù)項(xiàng)的個(gè)數(shù);
(4)stream:目標(biāo)文件指針。
malloc函數(shù)使用
pConvertData = (unsigned char*)malloc(stImageOut.stFrameInfo.nWidth * stImageOut.stFrameInfo.nHeight * nChannelNum); ... free(pConvertData); //釋放內(nèi)存內(nèi)存堆和棧的區(qū)別
https://www.cnblogs.com/ricklz/p/10090969.html
鏈表
單鏈表:
https://blog.csdn.net/weixin_42718004/article/details/93051556
雙鏈表:
https://blog.csdn.net/weixin_42718004/article/details/100581903
內(nèi)存分配
new char() 和 new char[]區(qū)別
char *lpc = new char(‘a(chǎn)’); //開(kāi)辟一個(gè)內(nèi)存單元,并用括號(hào)里的初始化
char *Lpcc = new char[15]; //開(kāi)辟一個(gè)數(shù)組
示例:
new char(10) 這個(gè)用10來(lái)初始化你定義的指針?biāo)赶虻哪莻€(gè)char
new char[10] 定義了一個(gè)有10個(gè)char元素的數(shù)組
釋放內(nèi)存的方法也不一樣:
delete lpc;
delete [] lpcc;
sizeof使用
參考鏈接:https://www.cnblogs.com/huolong-blog/p/7587711.html
總結(jié)
- 上一篇: c++ :MFC 如何遍历窗口同类型控件
- 下一篇: c++ :静态函数的应用