realloc 函式的使用

2021-09-06 16:32:25 字數 808 閱讀 2823

realloc 函式的使用

#include #include 

#include

using

namespace

std;

void setval(char *tmp,int qs,int num,char

mm) *(tmp+num-1)='\0'

;}intmain()

else

free(q);

getchar();

getchar();

system(

"pause");

return0;

}

realloc 可以對給定的指標所指的空間進行擴大或者縮小,原有記憶體的中內容將保持不變。當然,對於縮小,則被縮小的那一部分的內容會丟失。 

因為realloc是從堆上分配記憶體的,當擴大一塊記憶體空間時, realloc直接從堆上現存的資料後面的那些位元組中獲得附加的位元組;但如果資料後面的位元組不夠的話,那麼就使用堆上第乙個有足夠大小的自由塊,現存的資料然後就被拷貝至新的位置,而老塊則放回到堆上。

在**中,

如果我們採用i = (int*)realloc(i, 2*sizeof(int))的重新分配記憶體方式,有以下兩種情況:

1.分配成功,返回void*指標:realloc返回值如果與前面malloc的值不同,那麼realloc函式完成後,i指向的舊記憶體自動free掉。

解決辦法:定義另乙個指標j用於接收realloc返回值,判斷是否成功,成功則將j賦給i

realloc函式的使用

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

realloc 函式的使用

realloc 函式的使用 include include include using namespace std void setval char tmp,int qs,int num,char mm tmp num 1 0 intmain else free q getchar getchar ...

realloc函 realloc函式使用規則

realloc函式使用規則如下 1 realloc失敗的時候,返回null 2 realloc失敗的時候,原來的記憶體不改變,不會釋放也不會移動 3 假如原來的記憶體後面還有足夠多剩餘記憶體的話,realloc的記憶體 原來的記憶體 剩餘記憶體,realloc還是返回原來記憶體的位址 假如原來的記憶...