realloc函 realloc函式使用規則

2021-10-13 11:09:49 字數 630 閱讀 3871

realloc函式使用規則如下:

1、realloc失敗的時候,返回null;

2、realloc失敗的時候,原來的記憶體不改變,不會釋放也不會移動;

3、假如原來的記憶體後面還有足夠多剩餘記憶體的話,realloc的記憶體=原來的記憶體+剩餘記憶體,realloc還是返回原來記憶體的位址; 假如原來的記憶體後面沒有足夠多剩餘記憶體的話,realloc將申請新的記憶體,然後把原來的記憶體資料拷貝到新記憶體裡,原來的記憶體將被free掉,realloc返回新記憶體的位址;

4、如果size為0,效果等同於free()。這裡需要注意的是只對指標本身進行釋放,例如對二維指標a,對a呼叫realloc時只會釋放一維,使用時謹防記憶體洩露;

5、傳遞給realloc的指標必須是先前通過malloc(), calloc(), 或realloc()分配的;

6、傳遞給realloc的指標可以為空,等同於malloc。

realloc函式為c語言函式。其功能為先判斷當前的指標是否有足夠的連續空間,如果有,擴大mem_address指向的位址,並且將mem_address返回,如果空間不夠,先按照newsize指定的大小分配空間,將原有資料從頭到尾拷貝到新分配的記憶體區域,而後釋放原來mem_address所指記憶體區域,同時返回新分配的記憶體區域的首位址,即重新分配儲存器塊的位址。

realloc函 realloc函式用法

realloc 用過很多次了。無非就是將已經存在的一塊記憶體擴大。char p malloc 1024 char q realloc p,2048 現在的問題是我們應該如何處理指標 p。剛開始按照我最直觀的理解,如果就是直接將 p null 到最後只需要釋放 q的空間就可以了。因為最近在做個封裝。結...

realloc函式詳解

原型 extern void realloc void mem address,unsigned int newsize 用法 include 有些編譯器需要 include 功能 改變mem address所指記憶體區域的大小為newsize長度。說明 如果重新分配成功則返回指向被分配記憶體的指標...

malloc calloc和realloc的區別

malloc calloc和realloc三者都是記憶體分配操作相關的函式,要使用他們,就需要包含stdlib.h的標頭檔案。下面對他們的介面和含義進行說明。函式 void malloc size t size 含義 函式在堆上分配size大小 以位元組為單位 的空間,基本上同calloc函式但是它...