記憶體空間的配置

2021-04-13 13:33:22 字數 898 閱讀 4085

void *calloc(size_t nobj, size_t size);

分配足夠的記憶體給nobj個大小為size的物件組成的陣列, 並返回指向所分配區域的第乙個位元組的指標;

若記憶體不夠,則返回null. 該空間的初始化大小為0位元組.

char*p 

=(char

*) calloc(

100, 

sizeof

(char

));

void *malloc(size_t size);

分配足夠的記憶體給大小為size的物件, 並返回指向所分配區域的第乙個位元組的指標;

若記憶體不夠,則返回null. 不對分配的空間進行初始化.

char*p 

=(char

*) malloc(

sizeof

(char

));

void *realloc(void *p, size_t size);

將p所指向的物件的大小改為size個位元組.

如果新分配的記憶體比原記憶體大, 那麼原記憶體的內容保持不變, 增加的空間不進行初始化.

如果新分配的記憶體比原記憶體小, 那麼新記憶體保持原記憶體的內容, 增加的空間不進行初始化.

返回指向新分配空間的指標; 若記憶體不夠,則返回null, 原p指向的記憶體區不變.

char*p 

=(char

*) malloc(

sizeof

(char

));p=(

char

*) realloc(p, 

256);

void free(void *p);

釋放p所指向的記憶體空間; 當p為null時, 不起作用.

p必先呼叫calloc, malloc或realloc.

分配記憶體空間

void calloc size t nobj,size t size 分配足夠的記憶體給nobj個大小為size的物件組成的陣列,並返回指向所分配區域的第乙個位元組的指標 若記憶體不夠,則返回null.該空間的初始化大小為0位元組.char p char calloc 100,sizeof cha...

C 記憶體空間

乙個c 程式編譯後占用的記憶體分為如下幾個部分 棧 由編譯器自動分配釋放,存放函式的引數值,區域性變數的值。在乙個程序中,位於使用者虛擬位址空間頂部的是使用者棧,編譯器用它來實現函式的呼叫。堆 由程式設計師分配和釋放,若程式設計師不釋放,則程式結束時被os 存放由new,malloc分配的記憶體,可...

c 記憶體空間

題目 若char是一位元組,int是4位元組,指標型別是4位元組,如下 class ctest virtual void mem fun private char m chdata int m ndata static char s chdata char ctest s chdata 0 靜態成員...