C語言中relloc函式的用法

2021-08-29 05:14:30 字數 626 閱讀 2789

realloc(void *__ptr, size_t __size):更改已經配置的記憶體空間,即更改由malloc()函式分配的記憶體空間的大小

如果將分配的記憶體減少,realloc僅僅是改變索引的資訊。

如果是將分配的記憶體擴大,則有以下情況:

1)如果當前記憶體段後面有需要的記憶體空間,則直接擴充套件這段記憶體空間,realloc()將返回原指標

2)如果當前記憶體段後面的空閒位元組不夠,那麼就使用堆中的第乙個能夠滿足這一要求的記憶體塊,將目前的資料複製到新的位置,並將原來的資料塊釋放掉,返回新的記憶體塊位置

3)如果申請失敗,將返回null,此時,原來的指標仍然有效

注意:如果呼叫成功,不管當前記憶體段後面的空閒空間是否滿足要求,都會釋放掉原來的指標,重新返回乙個指標,雖然返回的指標有可能和原來的指標一樣,即不能再次釋放掉原來的指標。

(c語言中的malloc,realloc,calloc()這種使用者主動分配的記憶體放在堆區,而臨時變數放在棧區,這是兩塊不同的區域)

C語言中 malloc函式用法

一 malloc 和free 的基本概念以及基本用法 1 函式原型及說明 void malloc long numbytes 該函式分配了numbytes個位元組,並返回了指向這塊記憶體的指標。如果分配失敗,則返回乙個空指標 null 關於分配失敗的原因,應該有多種,比如說空間不足就是一種。void...

C語言中qsort函式用法

最近在刷pat時c語言中qsort函式的使用極多,所以在這裡總結整理了一下,需要的朋友可以參考下。具體樣例 參考博文 void qsort void base,size t nmemb,size t size int compar const void const void 引數說明 c語言中的qs...

C語言中getenv函式的用法

getenv 讀取環境變數的當前值的函式 原形 char getenv const char name 用法 s getenv 環境變數名 需先定義char s 功能 返回一給定的環境變數值,環境變數名可大寫或小寫。如果指定的變數在環境中未定義,則返回一空串。標頭檔案 stdlib.h eg str...