C語言 靜態記憶體分配和動態記憶體分配

2021-07-31 05:06:26 字數 813 閱讀 6380

靜態記憶體是直接變數等於什麼什麼。

malloc(int)返回值為記憶體位址,記憶體位址長度為4個位元組(指標的長度),一般先申明乙個指標不對他進行賦值,用malloc(int)返回值賦給這個指標,手動申請的記憶體用free(temp指標名)函式**。陣列第一次分配的記憶體還是不夠用時,使用realloc(誰,長度多少)來擴充套件記憶體。

為變數申請動態記憶體:

int*    temp;

temp=malloc(sizeof(int));

為陣列申請動態記憶體:

int  length;

scanf("&d",&length);

int*   iarray=malloc(length*4);

擴充套件動態記憶體的長度:

int   supplength;

scanf("&d",&supplength);

iarray=realloc(iarray,(length+supplength)*4);

動態陣列用到的技術:輸出函式printf();輸入函式scanf("佔位符",記憶體位址);重新分配記憶體函式realloc();

靜態記憶體分配和 動態記憶體分配

1 靜態記憶體分配是在編譯時完成的,不需要占用cpu資源 動態分配記憶體是在執行時完成的,動態記憶體的分配與釋放需要占用cpu資源 2 靜態記憶體分配是在棧上分配的,動態記憶體是堆上分配的 3 動態記憶體分配需要指標或引用資料型別的支援,而靜態記憶體分配不需要 4 靜態分配記憶體需要在編譯前確定記憶...

C語言靜態記憶體分配與動態記憶體分配

c語言中,記憶體主要分為5個區,分別為棧區 堆區 全域性 靜態儲存區 常量儲存區 區。其中 區存放源程式的二進位制 其餘四個區都儲存程序執行過程中需要的儲存的變數。變數的記憶體分配有兩種 靜態與動態。靜態記憶體分配在編譯時就對變數分配空間,而動態記憶體分配直到程式執行時再進行分配。使用靜態記憶體分配...

c語言動態記憶體分配 C 動態記憶體分配

動態記憶體分配 雖然通過陣列就可以對大量的資料和物件進行有效地管理,但是很多情況下,在程式執行之前,我們並不能確切地知道陣列中會有多少個元素。這種情況下,如果陣列宣告過大,就會造成浪費 宣告過小,就會影響處理。在c 中,動態記憶體分配技術可以保證程式在執行過程中按照需要申請適量記憶體,使用後釋放,從...