亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

動態內存分配

發布時間:2020-07-09 08:05:01 來源:網絡 閱讀:652 作者:檸檬dream 欄目:編程語言

c語言動態內存分配

 主要初步介紹malloc、calloc、realloc、free的基本用法。都是標準的庫函數,在stdlib.h庫內。

 malloc、free

分別用于動態內存分配和釋放

調用形式: (類型說明符*) malloc (size) ,“類型說明符”表示把該區域用于何種數據類型。(類型說明符*)表示把返回值強制轉換為該類型指針,malloc分配的內存是位于堆上的,并且沒有初始化內存的內容。malloc動態開辟一塊長度為size字節的連續區域,size為需要內存空間的長度,返回該區域的首地址。malloc分配存儲空間時,必須由我們計算需要的字節數。如果想要分配10int型的空間,那就是說需要10*sizeof(int)的內存空間。malloc分配的內存空間也有缺點,如果由malloc函數分配的內存空間原來沒有被使用過,則其中的每一位都有可能是0,反之,如果這部分內存曾經被分配過,則其中可能遺留各種各樣的數據。也就是說,使用malloc()函數分配內存時可能會出現問題。

int *p = (int *)malloc(10*sizeof(int));///分配完內存沒有初始化

calloc 也用于分配內存空間。調用形式: (類型說明符*)calloc(n,size) ,在內存動態存儲區中分配n塊長度為“size”字節的連續區域。函數的返回值為該區域的首地址。(類型說明符*)用于強制類型轉換。calloc函數與malloc 函數的區別僅在于一次可以分配n塊區域。 colloc與malloc類似,但是主要的區別是存儲在已分配的內存空間中的值默認為0,使用malloc時,已分配的內存中可以是任意的值.  colloc需要兩個參數,第一個是需要分配內存的變量的個數,第二個是每個變量的大小.

int *q = (int *)calloc(5,sizeof(int)); //calloc = malloc + memset//分配完內存自動初始化

realloc(p,5*sizeof(char));更改已經配置的內存空間,即更改由malloc()函數分配的內存空間的大小.如果重新分配成功則返回指向被分配內存的指針,否則返回空指針NULL。 當內存不再使用時,應使用free()函數將內存塊釋放。 

  注意:這里原始內存中的數據還是保持不變的。 

*p = realloc(p,5*sizeof(char));//修改malloc分配內存大小


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

扶绥县| 永康市| 平阳县| 铜梁县| 汨罗市| 嘉祥县| 永川市| 平塘县| 普定县| 信宜市| 平度市| 友谊县| 嘉义县| 玉溪市| 漠河县| 汉阴县| 郧西县| 观塘区| 武汉市| 毕节市| 合水县| 来安县| 曲靖市| 新民市| 崇仁县| 桃江县| 阳西县| 康定县| 高要市| 富顺县| 汕尾市| 新乡市| 东阿县| 宁安市| 太仆寺旗| 林西县| 巨鹿县| 井陉县| 云林县| 息烽县| 开原市|