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 取得視窗標題。需要在引數中給出儲存標題所使用的記憶體指標...