c和c 中的記憶體分配和記憶體釋放函式

2021-04-27 21:54:09 字數 563 閱讀 6419

c語言中的free(對應malloc)或delete(對應c++中的new)來釋放

例:char   *pt1,*pt2;  

pt1=(char   *)malloc(100);  

pt2=pt1;  

free(pt1);  

pt1=null;  

return   0;   

第一行定義兩個字元指標,但沒有賦初值,編譯器只給pt1、pt2個分配兩個位元組的儲存空間來儲存字元指標(指標也是一種變數,近程指標佔兩個位元組),其中的數值不清楚,即是pt1、pt2指向那裡是不可預知的  

第二行用malloc函式為動態申請乙個連續空間,並將這個快連續空間的首位址賦給pt1,pt1指向動態申請的記憶體塊  

第三行將pt1的內容pt2,兩者同時指向動態申請的記憶體快  

第四行釋放pt1所指向的記憶體空間,顯然將pt2所指向的空間也釋放了,因為他們指向同一空間,但是指標變數所儲存的資料不變,即pt1/pt2仍然指向原來的空間  

第五行後,pt1=『/0',但是pt2還是指向malloc申請空間的首位址,雖然那塊空間已經被釋放掉了   

C 中記憶體分配和釋放的函式

c語言的標準記憶體分配函式有 malloc,calloc,realloc,free等。c 的記憶體分配和釋放函式為new和delete。下面對alloca malloc calloc realloc等函式進行詳細說明。alloca是向棧申請記憶體,無需進行釋放。malloc分配的記憶體是位於堆中的,...

C和C 分配和釋放記憶體的區別

c是malloc和free,c 是new和delete,區別如下 1 new delete 是操作符,可以過載,只能在c 中使用。2 malloc free是函式,可以覆蓋,c c 中都可以使用。3 new 可以呼叫物件的建構函式,對應的delete呼叫相應的析構函式。4 malloc僅僅分配記憶體...

記憶體分配和釋放

自從學習了c語言,老師就教導我們說 對於動態記憶體的申請和釋放,一定要遵守 誰申請,誰釋放 的原則。在此原則的指導下,不僅是我 不僅是你,就連特級大師都設計了這樣怪怪的函式 函式說明 getwindowtext hwnd,lptstr,int 取得視窗標題。需要在引數中給出儲存標題所使用的記憶體指標...